feat: realtime updates

This commit is contained in:
d34dscene
2025-08-01 22:45:28 +02:00
parent 3f0126f898
commit 71a4534c9c
67 changed files with 9904 additions and 8347 deletions

View File

@@ -37,12 +37,15 @@ const (
UtilServiceGetVersionProcedure = "/mantrae.v1.UtilService/GetVersion"
// UtilServiceGetPublicIPProcedure is the fully-qualified name of the UtilService's GetPublicIP RPC.
UtilServiceGetPublicIPProcedure = "/mantrae.v1.UtilService/GetPublicIP"
// UtilServiceEventStreamProcedure is the fully-qualified name of the UtilService's EventStream RPC.
UtilServiceEventStreamProcedure = "/mantrae.v1.UtilService/EventStream"
)
// UtilServiceClient is a client for the mantrae.v1.UtilService service.
type UtilServiceClient interface {
GetVersion(context.Context, *connect.Request[v1.GetVersionRequest]) (*connect.Response[v1.GetVersionResponse], error)
GetPublicIP(context.Context, *connect.Request[v1.GetPublicIPRequest]) (*connect.Response[v1.GetPublicIPResponse], error)
EventStream(context.Context, *connect.Request[v1.EventStreamRequest]) (*connect.ServerStreamForClient[v1.EventStreamResponse], error)
}
// NewUtilServiceClient constructs a client for the mantrae.v1.UtilService service. By default, it
@@ -68,6 +71,12 @@ func NewUtilServiceClient(httpClient connect.HTTPClient, baseURL string, opts ..
connect.WithSchema(utilServiceMethods.ByName("GetPublicIP")),
connect.WithClientOptions(opts...),
),
eventStream: connect.NewClient[v1.EventStreamRequest, v1.EventStreamResponse](
httpClient,
baseURL+UtilServiceEventStreamProcedure,
connect.WithSchema(utilServiceMethods.ByName("EventStream")),
connect.WithClientOptions(opts...),
),
}
}
@@ -75,6 +84,7 @@ func NewUtilServiceClient(httpClient connect.HTTPClient, baseURL string, opts ..
type utilServiceClient struct {
getVersion *connect.Client[v1.GetVersionRequest, v1.GetVersionResponse]
getPublicIP *connect.Client[v1.GetPublicIPRequest, v1.GetPublicIPResponse]
eventStream *connect.Client[v1.EventStreamRequest, v1.EventStreamResponse]
}
// GetVersion calls mantrae.v1.UtilService.GetVersion.
@@ -87,10 +97,16 @@ func (c *utilServiceClient) GetPublicIP(ctx context.Context, req *connect.Reques
return c.getPublicIP.CallUnary(ctx, req)
}
// EventStream calls mantrae.v1.UtilService.EventStream.
func (c *utilServiceClient) EventStream(ctx context.Context, req *connect.Request[v1.EventStreamRequest]) (*connect.ServerStreamForClient[v1.EventStreamResponse], error) {
return c.eventStream.CallServerStream(ctx, req)
}
// UtilServiceHandler is an implementation of the mantrae.v1.UtilService service.
type UtilServiceHandler interface {
GetVersion(context.Context, *connect.Request[v1.GetVersionRequest]) (*connect.Response[v1.GetVersionResponse], error)
GetPublicIP(context.Context, *connect.Request[v1.GetPublicIPRequest]) (*connect.Response[v1.GetPublicIPResponse], error)
EventStream(context.Context, *connect.Request[v1.EventStreamRequest], *connect.ServerStream[v1.EventStreamResponse]) error
}
// NewUtilServiceHandler builds an HTTP handler from the service implementation. It returns the path
@@ -112,12 +128,20 @@ func NewUtilServiceHandler(svc UtilServiceHandler, opts ...connect.HandlerOption
connect.WithSchema(utilServiceMethods.ByName("GetPublicIP")),
connect.WithHandlerOptions(opts...),
)
utilServiceEventStreamHandler := connect.NewServerStreamHandler(
UtilServiceEventStreamProcedure,
svc.EventStream,
connect.WithSchema(utilServiceMethods.ByName("EventStream")),
connect.WithHandlerOptions(opts...),
)
return "/mantrae.v1.UtilService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case UtilServiceGetVersionProcedure:
utilServiceGetVersionHandler.ServeHTTP(w, r)
case UtilServiceGetPublicIPProcedure:
utilServiceGetPublicIPHandler.ServeHTTP(w, r)
case UtilServiceEventStreamProcedure:
utilServiceEventStreamHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
@@ -134,3 +158,7 @@ func (UnimplementedUtilServiceHandler) GetVersion(context.Context, *connect.Requ
func (UnimplementedUtilServiceHandler) GetPublicIP(context.Context, *connect.Request[v1.GetPublicIPRequest]) (*connect.Response[v1.GetPublicIPResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("mantrae.v1.UtilService.GetPublicIP is not implemented"))
}
func (UnimplementedUtilServiceHandler) EventStream(context.Context, *connect.Request[v1.EventStreamRequest], *connect.ServerStream[v1.EventStreamResponse]) error {
return connect.NewError(connect.CodeUnimplemented, errors.New("mantrae.v1.UtilService.EventStream is not implemented"))
}

View File

@@ -27,17 +27,18 @@ const (
type TraefikInstance struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
Username string `protobuf:"bytes,4,opt,name=username,proto3" json:"username,omitempty"`
Password string `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"`
Tls bool `protobuf:"varint,6,opt,name=tls,proto3" json:"tls,omitempty"`
EntryPoints *structpb.Struct `protobuf:"bytes,7,opt,name=entry_points,json=entryPoints,proto3" json:"entry_points,omitempty"`
Overview *structpb.Struct `protobuf:"bytes,8,opt,name=overview,proto3" json:"overview,omitempty"`
Config *structpb.Struct `protobuf:"bytes,9,opt,name=config,proto3" json:"config,omitempty"`
Version *structpb.Struct `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
ProfileId int64 `protobuf:"varint,2,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"`
Password string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
Tls bool `protobuf:"varint,7,opt,name=tls,proto3" json:"tls,omitempty"`
EntryPoints *structpb.Struct `protobuf:"bytes,8,opt,name=entry_points,json=entryPoints,proto3" json:"entry_points,omitempty"`
Overview *structpb.Struct `protobuf:"bytes,9,opt,name=overview,proto3" json:"overview,omitempty"`
Config *structpb.Struct `protobuf:"bytes,10,opt,name=config,proto3" json:"config,omitempty"`
Version *structpb.Struct `protobuf:"bytes,11,opt,name=version,proto3" json:"version,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -79,6 +80,13 @@ func (x *TraefikInstance) GetId() int64 {
return 0
}
func (x *TraefikInstance) GetProfileId() int64 {
if x != nil {
return x.ProfileId
}
return 0
}
func (x *TraefikInstance) GetName() string {
if x != nil {
return x.Name
@@ -441,23 +449,25 @@ var File_mantrae_v1_traefik_instance_proto protoreflect.FileDescriptor
const file_mantrae_v1_traefik_instance_proto_rawDesc = "" +
"\n" +
"!mantrae/v1/traefik_instance.proto\x12\n" +
"mantrae.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdc\x03\n" +
"mantrae.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfb\x03\n" +
"\x0fTraefikInstance\x12\x0e\n" +
"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n" +
"\x03url\x18\x03 \x01(\tR\x03url\x12\x1a\n" +
"\busername\x18\x04 \x01(\tR\busername\x12\x1a\n" +
"\bpassword\x18\x05 \x01(\tR\bpassword\x12\x10\n" +
"\x03tls\x18\x06 \x01(\bR\x03tls\x12:\n" +
"\fentry_points\x18\a \x01(\v2\x17.google.protobuf.StructR\ventryPoints\x123\n" +
"\boverview\x18\b \x01(\v2\x17.google.protobuf.StructR\boverview\x12/\n" +
"\x06config\x18\t \x01(\v2\x17.google.protobuf.StructR\x06config\x121\n" +
"\aversion\x18\n" +
" \x01(\v2\x17.google.protobuf.StructR\aversion\x129\n" +
"\x02id\x18\x01 \x01(\x03R\x02id\x12\x1d\n" +
"\n" +
"created_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
"profile_id\x18\x02 \x01(\x03R\tprofileId\x12\x12\n" +
"\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n" +
"\x03url\x18\x04 \x01(\tR\x03url\x12\x1a\n" +
"\busername\x18\x05 \x01(\tR\busername\x12\x1a\n" +
"\bpassword\x18\x06 \x01(\tR\bpassword\x12\x10\n" +
"\x03tls\x18\a \x01(\bR\x03tls\x12:\n" +
"\fentry_points\x18\b \x01(\v2\x17.google.protobuf.StructR\ventryPoints\x123\n" +
"\boverview\x18\t \x01(\v2\x17.google.protobuf.StructR\boverview\x12/\n" +
"\x06config\x18\n" +
" \x01(\v2\x17.google.protobuf.StructR\x06config\x121\n" +
"\aversion\x18\v \x01(\v2\x17.google.protobuf.StructR\aversion\x129\n" +
"\n" +
"updated_at\x18\f \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"4\n" +
"created_at\x18\f \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
"\n" +
"updated_at\x18\r \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"4\n" +
"\x19GetTraefikInstanceRequest\x12\x17\n" +
"\x02id\x18\x01 \x01(\x03B\a\xbaH\x04\"\x02 \x00R\x02id\"d\n" +
"\x1aGetTraefikInstanceResponse\x12F\n" +

View File

@@ -7,6 +7,7 @@
package mantraev1
import (
_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
@@ -21,6 +22,58 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type EventAction int32
const (
EventAction_EVENT_ACTION_UNSPECIFIED EventAction = 0
EventAction_EVENT_ACTION_CREATED EventAction = 1
EventAction_EVENT_ACTION_UPDATED EventAction = 2
EventAction_EVENT_ACTION_DELETED EventAction = 3
)
// Enum value maps for EventAction.
var (
EventAction_name = map[int32]string{
0: "EVENT_ACTION_UNSPECIFIED",
1: "EVENT_ACTION_CREATED",
2: "EVENT_ACTION_UPDATED",
3: "EVENT_ACTION_DELETED",
}
EventAction_value = map[string]int32{
"EVENT_ACTION_UNSPECIFIED": 0,
"EVENT_ACTION_CREATED": 1,
"EVENT_ACTION_UPDATED": 2,
"EVENT_ACTION_DELETED": 3,
}
)
func (x EventAction) Enum() *EventAction {
p := new(EventAction)
*p = x
return p
}
func (x EventAction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (EventAction) Descriptor() protoreflect.EnumDescriptor {
return file_mantrae_v1_util_proto_enumTypes[0].Descriptor()
}
func (EventAction) Type() protoreflect.EnumType {
return &file_mantrae_v1_util_proto_enumTypes[0]
}
func (x EventAction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use EventAction.Descriptor instead.
func (EventAction) EnumDescriptor() ([]byte, []int) {
return file_mantrae_v1_util_proto_rawDescGZIP(), []int{0}
}
type GetVersionRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
@@ -189,23 +242,311 @@ func (x *GetPublicIPResponse) GetIpv6() string {
return ""
}
type EventStreamRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ProfileId int64 `protobuf:"varint,1,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EventStreamRequest) Reset() {
*x = EventStreamRequest{}
mi := &file_mantrae_v1_util_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EventStreamRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EventStreamRequest) ProtoMessage() {}
func (x *EventStreamRequest) ProtoReflect() protoreflect.Message {
mi := &file_mantrae_v1_util_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EventStreamRequest.ProtoReflect.Descriptor instead.
func (*EventStreamRequest) Descriptor() ([]byte, []int) {
return file_mantrae_v1_util_proto_rawDescGZIP(), []int{4}
}
func (x *EventStreamRequest) GetProfileId() int64 {
if x != nil {
return x.ProfileId
}
return 0
}
type EventStreamResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Action EventAction `protobuf:"varint,1,opt,name=action,proto3,enum=mantrae.v1.EventAction" json:"action,omitempty"`
// Types that are valid to be assigned to Data:
//
// *EventStreamResponse_Profile
// *EventStreamResponse_User
// *EventStreamResponse_Agent
// *EventStreamResponse_DnsProvider
// *EventStreamResponse_TraefikInstance
// *EventStreamResponse_Router
// *EventStreamResponse_Service
// *EventStreamResponse_Middleware
// *EventStreamResponse_ServersTransport
// *EventStreamResponse_EntryPoint
Data isEventStreamResponse_Data `protobuf_oneof:"data"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EventStreamResponse) Reset() {
*x = EventStreamResponse{}
mi := &file_mantrae_v1_util_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EventStreamResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EventStreamResponse) ProtoMessage() {}
func (x *EventStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_mantrae_v1_util_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EventStreamResponse.ProtoReflect.Descriptor instead.
func (*EventStreamResponse) Descriptor() ([]byte, []int) {
return file_mantrae_v1_util_proto_rawDescGZIP(), []int{5}
}
func (x *EventStreamResponse) GetAction() EventAction {
if x != nil {
return x.Action
}
return EventAction_EVENT_ACTION_UNSPECIFIED
}
func (x *EventStreamResponse) GetData() isEventStreamResponse_Data {
if x != nil {
return x.Data
}
return nil
}
func (x *EventStreamResponse) GetProfile() *Profile {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_Profile); ok {
return x.Profile
}
}
return nil
}
func (x *EventStreamResponse) GetUser() *User {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_User); ok {
return x.User
}
}
return nil
}
func (x *EventStreamResponse) GetAgent() *Agent {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_Agent); ok {
return x.Agent
}
}
return nil
}
func (x *EventStreamResponse) GetDnsProvider() *DnsProvider {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_DnsProvider); ok {
return x.DnsProvider
}
}
return nil
}
func (x *EventStreamResponse) GetTraefikInstance() *TraefikInstance {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_TraefikInstance); ok {
return x.TraefikInstance
}
}
return nil
}
func (x *EventStreamResponse) GetRouter() *Router {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_Router); ok {
return x.Router
}
}
return nil
}
func (x *EventStreamResponse) GetService() *Service {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_Service); ok {
return x.Service
}
}
return nil
}
func (x *EventStreamResponse) GetMiddleware() *Middleware {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_Middleware); ok {
return x.Middleware
}
}
return nil
}
func (x *EventStreamResponse) GetServersTransport() *ServersTransport {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_ServersTransport); ok {
return x.ServersTransport
}
}
return nil
}
func (x *EventStreamResponse) GetEntryPoint() *EntryPoint {
if x != nil {
if x, ok := x.Data.(*EventStreamResponse_EntryPoint); ok {
return x.EntryPoint
}
}
return nil
}
type isEventStreamResponse_Data interface {
isEventStreamResponse_Data()
}
type EventStreamResponse_Profile struct {
Profile *Profile `protobuf:"bytes,2,opt,name=profile,proto3,oneof"`
}
type EventStreamResponse_User struct {
User *User `protobuf:"bytes,3,opt,name=user,proto3,oneof"`
}
type EventStreamResponse_Agent struct {
Agent *Agent `protobuf:"bytes,4,opt,name=agent,proto3,oneof"`
}
type EventStreamResponse_DnsProvider struct {
DnsProvider *DnsProvider `protobuf:"bytes,5,opt,name=dns_provider,json=dnsProvider,proto3,oneof"`
}
type EventStreamResponse_TraefikInstance struct {
TraefikInstance *TraefikInstance `protobuf:"bytes,6,opt,name=traefik_instance,json=traefikInstance,proto3,oneof"`
}
type EventStreamResponse_Router struct {
Router *Router `protobuf:"bytes,7,opt,name=router,proto3,oneof"`
}
type EventStreamResponse_Service struct {
Service *Service `protobuf:"bytes,8,opt,name=service,proto3,oneof"`
}
type EventStreamResponse_Middleware struct {
Middleware *Middleware `protobuf:"bytes,9,opt,name=middleware,proto3,oneof"`
}
type EventStreamResponse_ServersTransport struct {
ServersTransport *ServersTransport `protobuf:"bytes,10,opt,name=servers_transport,json=serversTransport,proto3,oneof"`
}
type EventStreamResponse_EntryPoint struct {
EntryPoint *EntryPoint `protobuf:"bytes,11,opt,name=entry_point,json=entryPoint,proto3,oneof"`
}
func (*EventStreamResponse_Profile) isEventStreamResponse_Data() {}
func (*EventStreamResponse_User) isEventStreamResponse_Data() {}
func (*EventStreamResponse_Agent) isEventStreamResponse_Data() {}
func (*EventStreamResponse_DnsProvider) isEventStreamResponse_Data() {}
func (*EventStreamResponse_TraefikInstance) isEventStreamResponse_Data() {}
func (*EventStreamResponse_Router) isEventStreamResponse_Data() {}
func (*EventStreamResponse_Service) isEventStreamResponse_Data() {}
func (*EventStreamResponse_Middleware) isEventStreamResponse_Data() {}
func (*EventStreamResponse_ServersTransport) isEventStreamResponse_Data() {}
func (*EventStreamResponse_EntryPoint) isEventStreamResponse_Data() {}
var File_mantrae_v1_util_proto protoreflect.FileDescriptor
const file_mantrae_v1_util_proto_rawDesc = "" +
"\n" +
"\x15mantrae/v1/util.proto\x12\n" +
"mantrae.v1\"\x13\n" +
"mantrae.v1\x1a\x1bbuf/validate/validate.proto\x1a\x16mantrae/v1/agent.proto\x1a\x1dmantrae/v1/dns_provider.proto\x1a\x1cmantrae/v1/entry_point.proto\x1a\x1bmantrae/v1/middleware.proto\x1a\x18mantrae/v1/profile.proto\x1a\x17mantrae/v1/router.proto\x1a\"mantrae/v1/servers_transport.proto\x1a\x18mantrae/v1/service.proto\x1a!mantrae/v1/traefik_instance.proto\x1a\x15mantrae/v1/user.proto\"\x13\n" +
"\x11GetVersionRequest\".\n" +
"\x12GetVersionResponse\x12\x18\n" +
"\aversion\x18\x01 \x01(\tR\aversion\"\x14\n" +
"\x12GetPublicIPRequest\"=\n" +
"\x13GetPublicIPResponse\x12\x12\n" +
"\x04ipv4\x18\x01 \x01(\tR\x04ipv4\x12\x12\n" +
"\x04ipv6\x18\x02 \x01(\tR\x04ipv62\xaa\x01\n" +
"\x04ipv6\x18\x02 \x01(\tR\x04ipv6\"<\n" +
"\x12EventStreamRequest\x12&\n" +
"\n" +
"profile_id\x18\x01 \x01(\x03B\a\xbaH\x04\"\x02 \x00R\tprofileId\"\xfb\x04\n" +
"\x13EventStreamResponse\x12/\n" +
"\x06action\x18\x01 \x01(\x0e2\x17.mantrae.v1.EventActionR\x06action\x12/\n" +
"\aprofile\x18\x02 \x01(\v2\x13.mantrae.v1.ProfileH\x00R\aprofile\x12&\n" +
"\x04user\x18\x03 \x01(\v2\x10.mantrae.v1.UserH\x00R\x04user\x12)\n" +
"\x05agent\x18\x04 \x01(\v2\x11.mantrae.v1.AgentH\x00R\x05agent\x12<\n" +
"\fdns_provider\x18\x05 \x01(\v2\x17.mantrae.v1.DnsProviderH\x00R\vdnsProvider\x12H\n" +
"\x10traefik_instance\x18\x06 \x01(\v2\x1b.mantrae.v1.TraefikInstanceH\x00R\x0ftraefikInstance\x12,\n" +
"\x06router\x18\a \x01(\v2\x12.mantrae.v1.RouterH\x00R\x06router\x12/\n" +
"\aservice\x18\b \x01(\v2\x13.mantrae.v1.ServiceH\x00R\aservice\x128\n" +
"\n" +
"middleware\x18\t \x01(\v2\x16.mantrae.v1.MiddlewareH\x00R\n" +
"middleware\x12K\n" +
"\x11servers_transport\x18\n" +
" \x01(\v2\x1c.mantrae.v1.ServersTransportH\x00R\x10serversTransport\x129\n" +
"\ventry_point\x18\v \x01(\v2\x16.mantrae.v1.EntryPointH\x00R\n" +
"entryPointB\x06\n" +
"\x04data*y\n" +
"\vEventAction\x12\x1c\n" +
"\x18EVENT_ACTION_UNSPECIFIED\x10\x00\x12\x18\n" +
"\x14EVENT_ACTION_CREATED\x10\x01\x12\x18\n" +
"\x14EVENT_ACTION_UPDATED\x10\x02\x12\x18\n" +
"\x14EVENT_ACTION_DELETED\x10\x032\xfc\x01\n" +
"\vUtilService\x12K\n" +
"\n" +
"GetVersion\x12\x1d.mantrae.v1.GetVersionRequest\x1a\x1e.mantrae.v1.GetVersionResponse\x12N\n" +
"\vGetPublicIP\x12\x1e.mantrae.v1.GetPublicIPRequest\x1a\x1f.mantrae.v1.GetPublicIPResponseB\xa3\x01\n" +
"\vGetPublicIP\x12\x1e.mantrae.v1.GetPublicIPRequest\x1a\x1f.mantrae.v1.GetPublicIPResponse\x12P\n" +
"\vEventStream\x12\x1e.mantrae.v1.EventStreamRequest\x1a\x1f.mantrae.v1.EventStreamResponse0\x01B\xa3\x01\n" +
"\x0ecom.mantrae.v1B\tUtilProtoP\x01Z=github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1;mantraev1\xa2\x02\x03MXX\xaa\x02\n" +
"Mantrae.V1\xca\x02\n" +
"Mantrae\\V1\xe2\x02\x16Mantrae\\V1\\GPBMetadata\xea\x02\vMantrae::V1b\x06proto3"
@@ -222,23 +563,50 @@ func file_mantrae_v1_util_proto_rawDescGZIP() []byte {
return file_mantrae_v1_util_proto_rawDescData
}
var file_mantrae_v1_util_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_mantrae_v1_util_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_mantrae_v1_util_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_mantrae_v1_util_proto_goTypes = []any{
(*GetVersionRequest)(nil), // 0: mantrae.v1.GetVersionRequest
(*GetVersionResponse)(nil), // 1: mantrae.v1.GetVersionResponse
(*GetPublicIPRequest)(nil), // 2: mantrae.v1.GetPublicIPRequest
(*GetPublicIPResponse)(nil), // 3: mantrae.v1.GetPublicIPResponse
(EventAction)(0), // 0: mantrae.v1.EventAction
(*GetVersionRequest)(nil), // 1: mantrae.v1.GetVersionRequest
(*GetVersionResponse)(nil), // 2: mantrae.v1.GetVersionResponse
(*GetPublicIPRequest)(nil), // 3: mantrae.v1.GetPublicIPRequest
(*GetPublicIPResponse)(nil), // 4: mantrae.v1.GetPublicIPResponse
(*EventStreamRequest)(nil), // 5: mantrae.v1.EventStreamRequest
(*EventStreamResponse)(nil), // 6: mantrae.v1.EventStreamResponse
(*Profile)(nil), // 7: mantrae.v1.Profile
(*User)(nil), // 8: mantrae.v1.User
(*Agent)(nil), // 9: mantrae.v1.Agent
(*DnsProvider)(nil), // 10: mantrae.v1.DnsProvider
(*TraefikInstance)(nil), // 11: mantrae.v1.TraefikInstance
(*Router)(nil), // 12: mantrae.v1.Router
(*Service)(nil), // 13: mantrae.v1.Service
(*Middleware)(nil), // 14: mantrae.v1.Middleware
(*ServersTransport)(nil), // 15: mantrae.v1.ServersTransport
(*EntryPoint)(nil), // 16: mantrae.v1.EntryPoint
}
var file_mantrae_v1_util_proto_depIdxs = []int32{
0, // 0: mantrae.v1.UtilService.GetVersion:input_type -> mantrae.v1.GetVersionRequest
2, // 1: mantrae.v1.UtilService.GetPublicIP:input_type -> mantrae.v1.GetPublicIPRequest
1, // 2: mantrae.v1.UtilService.GetVersion:output_type -> mantrae.v1.GetVersionResponse
3, // 3: mantrae.v1.UtilService.GetPublicIP:output_type -> mantrae.v1.GetPublicIPResponse
2, // [2:4] is the sub-list for method output_type
0, // [0:2] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
0, // 0: mantrae.v1.EventStreamResponse.action:type_name -> mantrae.v1.EventAction
7, // 1: mantrae.v1.EventStreamResponse.profile:type_name -> mantrae.v1.Profile
8, // 2: mantrae.v1.EventStreamResponse.user:type_name -> mantrae.v1.User
9, // 3: mantrae.v1.EventStreamResponse.agent:type_name -> mantrae.v1.Agent
10, // 4: mantrae.v1.EventStreamResponse.dns_provider:type_name -> mantrae.v1.DnsProvider
11, // 5: mantrae.v1.EventStreamResponse.traefik_instance:type_name -> mantrae.v1.TraefikInstance
12, // 6: mantrae.v1.EventStreamResponse.router:type_name -> mantrae.v1.Router
13, // 7: mantrae.v1.EventStreamResponse.service:type_name -> mantrae.v1.Service
14, // 8: mantrae.v1.EventStreamResponse.middleware:type_name -> mantrae.v1.Middleware
15, // 9: mantrae.v1.EventStreamResponse.servers_transport:type_name -> mantrae.v1.ServersTransport
16, // 10: mantrae.v1.EventStreamResponse.entry_point:type_name -> mantrae.v1.EntryPoint
1, // 11: mantrae.v1.UtilService.GetVersion:input_type -> mantrae.v1.GetVersionRequest
3, // 12: mantrae.v1.UtilService.GetPublicIP:input_type -> mantrae.v1.GetPublicIPRequest
5, // 13: mantrae.v1.UtilService.EventStream:input_type -> mantrae.v1.EventStreamRequest
2, // 14: mantrae.v1.UtilService.GetVersion:output_type -> mantrae.v1.GetVersionResponse
4, // 15: mantrae.v1.UtilService.GetPublicIP:output_type -> mantrae.v1.GetPublicIPResponse
6, // 16: mantrae.v1.UtilService.EventStream:output_type -> mantrae.v1.EventStreamResponse
14, // [14:17] is the sub-list for method output_type
11, // [11:14] is the sub-list for method input_type
11, // [11:11] is the sub-list for extension type_name
11, // [11:11] is the sub-list for extension extendee
0, // [0:11] is the sub-list for field type_name
}
func init() { file_mantrae_v1_util_proto_init() }
@@ -246,18 +614,41 @@ func file_mantrae_v1_util_proto_init() {
if File_mantrae_v1_util_proto != nil {
return
}
file_mantrae_v1_agent_proto_init()
file_mantrae_v1_dns_provider_proto_init()
file_mantrae_v1_entry_point_proto_init()
file_mantrae_v1_middleware_proto_init()
file_mantrae_v1_profile_proto_init()
file_mantrae_v1_router_proto_init()
file_mantrae_v1_servers_transport_proto_init()
file_mantrae_v1_service_proto_init()
file_mantrae_v1_traefik_instance_proto_init()
file_mantrae_v1_user_proto_init()
file_mantrae_v1_util_proto_msgTypes[5].OneofWrappers = []any{
(*EventStreamResponse_Profile)(nil),
(*EventStreamResponse_User)(nil),
(*EventStreamResponse_Agent)(nil),
(*EventStreamResponse_DnsProvider)(nil),
(*EventStreamResponse_TraefikInstance)(nil),
(*EventStreamResponse_Router)(nil),
(*EventStreamResponse_Service)(nil),
(*EventStreamResponse_Middleware)(nil),
(*EventStreamResponse_ServersTransport)(nil),
(*EventStreamResponse_EntryPoint)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_mantrae_v1_util_proto_rawDesc), len(file_mantrae_v1_util_proto_rawDesc)),
NumEnums: 0,
NumMessages: 4,
NumEnums: 1,
NumMessages: 6,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_mantrae_v1_util_proto_goTypes,
DependencyIndexes: file_mantrae_v1_util_proto_depIdxs,
EnumInfos: file_mantrae_v1_util_proto_enumTypes,
MessageInfos: file_mantrae_v1_util_proto_msgTypes,
}.Build()
File_mantrae_v1_util_proto = out.File

View File

@@ -2338,6 +2338,12 @@ components:
- string
title: id
format: int64
profileId:
type:
- integer
- string
title: profile_id
format: int64
name:
type: string
title: name
@@ -2675,6 +2681,105 @@ components:
$ref: '#/components/schemas/mantrae.v1.User'
title: VerifyOTPResponse
additionalProperties: false
mantrae.v1.EventAction:
type: string
title: EventAction
enum:
- EVENT_ACTION_UNSPECIFIED
- EVENT_ACTION_CREATED
- EVENT_ACTION_UPDATED
- EVENT_ACTION_DELETED
mantrae.v1.EventStreamRequest:
type: object
properties:
profileId:
exclusiveMinimum: 0
type:
- integer
- string
title: profile_id
format: int64
title: EventStreamRequest
additionalProperties: false
mantrae.v1.EventStreamResponse:
type: object
oneOf:
- properties:
agent:
title: agent
$ref: '#/components/schemas/mantrae.v1.Agent'
title: agent
required:
- agent
- properties:
dnsProvider:
title: dns_provider
$ref: '#/components/schemas/mantrae.v1.DnsProvider'
title: dns_provider
required:
- dnsProvider
- properties:
entryPoint:
title: entry_point
$ref: '#/components/schemas/mantrae.v1.EntryPoint'
title: entry_point
required:
- entryPoint
- properties:
middleware:
title: middleware
$ref: '#/components/schemas/mantrae.v1.Middleware'
title: middleware
required:
- middleware
- properties:
profile:
title: profile
$ref: '#/components/schemas/mantrae.v1.Profile'
title: profile
required:
- profile
- properties:
router:
title: router
$ref: '#/components/schemas/mantrae.v1.Router'
title: router
required:
- router
- properties:
serversTransport:
title: servers_transport
$ref: '#/components/schemas/mantrae.v1.ServersTransport'
title: servers_transport
required:
- serversTransport
- properties:
service:
title: service
$ref: '#/components/schemas/mantrae.v1.Service'
title: service
required:
- service
- properties:
traefikInstance:
title: traefik_instance
$ref: '#/components/schemas/mantrae.v1.TraefikInstance'
title: traefik_instance
required:
- traefikInstance
- properties:
user:
title: user
$ref: '#/components/schemas/mantrae.v1.User'
title: user
required:
- user
properties:
action:
title: action
$ref: '#/components/schemas/mantrae.v1.EventAction'
title: EventStreamResponse
additionalProperties: false
mantrae.v1.GetPublicIPRequest:
type: object
title: GetPublicIPRequest
@@ -6356,6 +6461,104 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/mantrae.v1.GetPublicIPResponse'
/mantrae.v1.UtilService/EventStream:
post:
tags:
- mantrae.v1.UtilService
summary: EventStream
operationId: mantrae.v1.UtilService.EventStream
parameters:
- name: Connect-Protocol-Version
in: header
required: true
schema:
$ref: '#/components/schemas/connect-protocol-version'
- name: Connect-Timeout-Ms
in: header
schema:
$ref: '#/components/schemas/connect-timeout-header'
requestBody:
content:
application/connect+json:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/connect+proto:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/grpc:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/grpc+proto:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/grpc+json:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/grpc-web:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/grpc-web+proto:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
application/grpc-web+json:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamRequest'
required: true
responses:
default:
description: Error
content:
application/connect+json:
schema:
$ref: '#/components/schemas/connect.error'
application/connect+proto:
schema:
$ref: '#/components/schemas/connect.error'
application/grpc:
schema:
$ref: '#/components/schemas/connect.error'
application/grpc+proto:
schema:
$ref: '#/components/schemas/connect.error'
application/grpc+json:
schema:
$ref: '#/components/schemas/connect.error'
application/grpc-web:
schema:
$ref: '#/components/schemas/connect.error'
application/grpc-web+proto:
schema:
$ref: '#/components/schemas/connect.error'
application/grpc-web+json:
schema:
$ref: '#/components/schemas/connect.error'
"200":
description: Success
content:
application/connect+json:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/connect+proto:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/grpc:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/grpc+proto:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/grpc+json:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/grpc-web:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/grpc-web+proto:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
application/grpc-web+json:
schema:
$ref: '#/components/schemas/mantrae.v1.EventStreamResponse'
tags:
- name: mantrae.v1.AgentService
- name: mantrae.v1.AuditLogService

View File

@@ -18,17 +18,18 @@ service TraefikInstanceService {
message TraefikInstance {
int64 id = 1;
string name = 2;
string url = 3;
string username = 4;
string password = 5;
bool tls = 6;
google.protobuf.Struct entry_points = 7;
google.protobuf.Struct overview = 8;
google.protobuf.Struct config = 9;
google.protobuf.Struct version = 10;
google.protobuf.Timestamp created_at = 11;
google.protobuf.Timestamp updated_at = 12;
int64 profile_id = 2;
string name = 3;
string url = 4;
string username = 5;
string password = 6;
bool tls = 7;
google.protobuf.Struct entry_points = 8;
google.protobuf.Struct overview = 9;
google.protobuf.Struct config = 10;
google.protobuf.Struct version = 11;
google.protobuf.Timestamp created_at = 12;
google.protobuf.Timestamp updated_at = 13;
}
message GetTraefikInstanceRequest {

View File

@@ -2,9 +2,29 @@ syntax = "proto3";
package mantrae.v1;
import "buf/validate/validate.proto";
import "mantrae/v1/agent.proto";
import "mantrae/v1/dns_provider.proto";
import "mantrae/v1/entry_point.proto";
import "mantrae/v1/middleware.proto";
import "mantrae/v1/profile.proto";
import "mantrae/v1/router.proto";
import "mantrae/v1/servers_transport.proto";
import "mantrae/v1/service.proto";
import "mantrae/v1/traefik_instance.proto";
import "mantrae/v1/user.proto";
service UtilService {
rpc GetVersion(GetVersionRequest) returns (GetVersionResponse);
rpc GetPublicIP(GetPublicIPRequest) returns (GetPublicIPResponse);
rpc EventStream(EventStreamRequest) returns (stream EventStreamResponse);
}
enum EventAction {
EVENT_ACTION_UNSPECIFIED = 0;
EVENT_ACTION_CREATED = 1;
EVENT_ACTION_UPDATED = 2;
EVENT_ACTION_DELETED = 3;
}
message GetVersionRequest {}
@@ -17,3 +37,22 @@ message GetPublicIPResponse {
string ipv4 = 1;
string ipv6 = 2;
}
message EventStreamRequest {
int64 profile_id = 1 [(buf.validate.field).int64.gt = 0];
}
message EventStreamResponse {
EventAction action = 1;
oneof data {
Profile profile = 2;
User user = 3;
Agent agent = 4;
DnsProvider dns_provider = 5;
TraefikInstance traefik_instance = 6;
Router router = 7;
Service service = 8;
Middleware middleware = 9;
ServersTransport servers_transport = 10;
EntryPoint entry_point = 11;
}
}

View File

@@ -13,8 +13,8 @@ import (
func main() {
// Graceful shutdown
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
app, err := config.Setup(ctx)
if err != nil {
@@ -22,13 +22,6 @@ func main() {
return
}
go func() {
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
<-sigCh
cancel()
}()
srv := server.NewServer(app)
if err := srv.Start(ctx); err != nil {
slog.Error("Server error", "error", err)

View File

@@ -7,6 +7,7 @@ import (
"log"
"log/slog"
"net/http"
"net/http/pprof"
"runtime/debug"
"time"
@@ -166,11 +167,11 @@ func (s *Server) registerServices() {
s.mux.Handle(grpcreflect.NewHandlerV1Alpha(reflector))
// PProf debug endpoints
// s.mux.HandleFunc("/debug/pprof/", pprof.Index)
// s.mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
// s.mux.HandleFunc("/debug/pprof/profile", pprof.Profile)
// s.mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
// s.mux.HandleFunc("/debug/pprof/trace", pprof.Trace)
s.mux.HandleFunc("/debug/pprof/", pprof.Index)
s.mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
s.mux.HandleFunc("/debug/pprof/profile", pprof.Profile)
s.mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
s.mux.HandleFunc("/debug/pprof/trace", pprof.Trace)
// Static files
s.WithStatic()

View File

@@ -51,6 +51,13 @@ func (s *AgentService) CreateAgent(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Agent{
Agent: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.CreateAgentResponse{
Agent: result.ToProto(),
}), nil
@@ -78,6 +85,13 @@ func (s *AgentService) UpdateAgent(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Agent{
Agent: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.UpdateAgentResponse{
Agent: result.ToProto(),
}), nil
@@ -87,9 +101,21 @@ func (s *AgentService) DeleteAgent(
ctx context.Context,
req *connect.Request[mantraev1.DeleteAgentRequest],
) (*connect.Response[mantraev1.DeleteAgentResponse], error) {
agent, err := s.app.Conn.GetQuery().GetAgent(ctx, req.Msg.Id)
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
if err := s.app.Conn.GetQuery().DeleteAgent(ctx, req.Msg.Id); err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Agent{
Agent: agent.ToProto(),
},
})
return connect.NewResponse(&mantraev1.DeleteAgentResponse{}), nil
}
@@ -155,6 +181,12 @@ func (s *AgentService) HealthCheck(
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Agent{
Agent: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.HealthCheckResponse{
Agent: result.ToProto(),
}), nil

View File

@@ -75,6 +75,13 @@ func (s *DnsProviderService) CreateDnsProvider(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_DnsProvider{
DnsProvider: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.CreateDnsProviderResponse{
DnsProvider: result.ToProto(),
}), nil
@@ -123,6 +130,13 @@ func (s *DnsProviderService) UpdateDnsProvider(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_DnsProvider{
DnsProvider: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.UpdateDnsProviderResponse{
DnsProvider: result.ToProto(),
}), nil
@@ -132,9 +146,20 @@ func (s *DnsProviderService) DeleteDnsProvider(
ctx context.Context,
req *connect.Request[mantraev1.DeleteDnsProviderRequest],
) (*connect.Response[mantraev1.DeleteDnsProviderResponse], error) {
dnsProvider, err := s.app.Conn.GetQuery().GetDnsProvider(ctx, req.Msg.Id)
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
if err := s.app.Conn.GetQuery().DeleteDnsProvider(ctx, req.Msg.Id); err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_DnsProvider{
DnsProvider: dnsProvider.ToProto(),
},
})
return connect.NewResponse(&mantraev1.DeleteDnsProviderResponse{}), nil
}

View File

@@ -52,6 +52,13 @@ func (s *EntryPointService) CreateEntryPoint(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_EntryPoint{
EntryPoint: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.CreateEntryPointResponse{
EntryPoint: result.ToProto(),
}), nil
@@ -82,6 +89,13 @@ func (s *EntryPointService) UpdateEntryPoint(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_EntryPoint{
EntryPoint: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.UpdateEntryPointResponse{
EntryPoint: result.ToProto(),
}), nil
@@ -91,12 +105,22 @@ func (s *EntryPointService) DeleteEntryPoint(
ctx context.Context,
req *connect.Request[mantraev1.DeleteEntryPointRequest],
) (*connect.Response[mantraev1.DeleteEntryPointResponse], error) {
entryPoint, err := s.app.Conn.GetQuery().GetEntryPoint(ctx, req.Msg.Id)
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
if err := s.updateRouterEntrypoints(ctx, req.Msg.Id, ""); err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
if err := s.app.Conn.GetQuery().DeleteEntryPointByID(ctx, req.Msg.Id); err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_EntryPoint{
EntryPoint: entryPoint.ToProto(),
},
})
return connect.NewResponse(&mantraev1.DeleteEntryPointResponse{}), nil
}

View File

@@ -94,6 +94,13 @@ func (s *HTTPMiddlewareOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Middleware{
Middleware: result.ToProto(),
},
})
return &mantraev1.CreateMiddlewareResponse{
Middleware: result.ToProto(),
}, nil
@@ -159,6 +166,13 @@ func (s *HTTPMiddlewareOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Middleware{
Middleware: result.ToProto(),
},
})
return &mantraev1.UpdateMiddlewareResponse{
Middleware: result.ToProto(),
}, nil
@@ -199,6 +213,13 @@ func (s *HTTPMiddlewareOps) Delete(
if err := s.app.Conn.GetQuery().DeleteHttpMiddleware(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Middleware{
Middleware: middleware.ToProto(),
},
})
return &mantraev1.DeleteMiddlewareResponse{}, nil
}
@@ -277,6 +298,13 @@ func (s *TCPMiddlewareOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Middleware{
Middleware: result.ToProto(),
},
})
return &mantraev1.CreateMiddlewareResponse{
Middleware: result.ToProto(),
}, nil
@@ -339,6 +367,13 @@ func (s *TCPMiddlewareOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Middleware{
Middleware: result.ToProto(),
},
})
return &mantraev1.UpdateMiddlewareResponse{
Middleware: result.ToProto(),
}, nil
@@ -379,6 +414,13 @@ func (s *TCPMiddlewareOps) Delete(
if err := s.app.Conn.GetQuery().DeleteTcpMiddleware(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Middleware{
Middleware: middleware.ToProto(),
},
})
return &mantraev1.DeleteMiddlewareResponse{}, nil
}

View File

@@ -104,6 +104,12 @@ func (s *HTTPRouterOps) Create(
router.DnsProviders = append(router.DnsProviders, p.ToProto())
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Router{
Router: router,
},
})
return &mantraev1.CreateRouterResponse{
Router: router,
}, nil
@@ -183,6 +189,12 @@ func (s *HTTPRouterOps) Update(
router.DnsProviders = append(router.DnsProviders, p.ToProto())
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Router{
Router: router,
},
})
return &mantraev1.UpdateRouterResponse{
Router: router,
}, nil
@@ -213,6 +225,13 @@ func (s *HTTPRouterOps) Delete(
if err := s.app.Conn.GetQuery().DeleteHttpRouter(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Router{
Router: router.ToProto(),
},
})
return &mantraev1.DeleteRouterResponse{}, nil
}
@@ -284,6 +303,13 @@ func (s *TCPRouterOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Router{
Router: result.ToProto(),
},
})
return &mantraev1.CreateRouterResponse{
Router: result.ToProto(),
}, nil
@@ -352,6 +378,13 @@ func (s *TCPRouterOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Router{
Router: result.ToProto(),
},
})
return &mantraev1.UpdateRouterResponse{
Router: result.ToProto(),
}, nil
@@ -381,6 +414,13 @@ func (s *TCPRouterOps) Delete(
if err := s.app.Conn.GetQuery().DeleteTcpRouter(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Router{
Router: router.ToProto(),
},
})
return &mantraev1.DeleteRouterResponse{}, nil
}
@@ -452,6 +492,13 @@ func (s *UDPRouterOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Router{
Router: result.ToProto(),
},
})
return &mantraev1.CreateRouterResponse{
Router: result.ToProto(),
}, nil
@@ -478,6 +525,13 @@ func (s *UDPRouterOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Router{
Router: result.ToProto(),
},
})
return &mantraev1.UpdateRouterResponse{
Router: result.ToProto(),
}, nil
@@ -507,6 +561,13 @@ func (s *UDPRouterOps) Delete(
if err := s.app.Conn.GetQuery().DeleteUdpRouter(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Router{
Router: router.ToProto(),
},
})
return &mantraev1.DeleteRouterResponse{}, nil
}

View File

@@ -83,6 +83,13 @@ func (s *HTTPServersTransportOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_ServersTransport{
ServersTransport: result.ToProto(),
},
})
return &mantraev1.CreateServersTransportResponse{
ServersTransport: result.ToProto(),
}, nil
@@ -108,6 +115,13 @@ func (s *HTTPServersTransportOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_ServersTransport{
ServersTransport: result.ToProto(),
},
})
return &mantraev1.UpdateServersTransportResponse{
ServersTransport: result.ToProto(),
}, nil
@@ -117,9 +131,20 @@ func (s *HTTPServersTransportOps) Delete(
ctx context.Context,
req *mantraev1.DeleteServersTransportRequest,
) (*mantraev1.DeleteServersTransportResponse, error) {
serversTransport, err := s.app.Conn.GetQuery().GetHttpServersTransport(ctx, req.Id)
if err != nil {
return nil, err
}
if err := s.app.Conn.GetQuery().DeleteHttpServersTransport(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_ServersTransport{
ServersTransport: serversTransport.ToProto(),
},
})
return &mantraev1.DeleteServersTransportResponse{}, nil
}
@@ -191,6 +216,13 @@ func (s *TCPServersTransportOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_ServersTransport{
ServersTransport: result.ToProto(),
},
})
return &mantraev1.CreateServersTransportResponse{
ServersTransport: result.ToProto(),
}, nil
@@ -216,6 +248,13 @@ func (s *TCPServersTransportOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_ServersTransport{
ServersTransport: result.ToProto(),
},
})
return &mantraev1.UpdateServersTransportResponse{
ServersTransport: result.ToProto(),
}, nil
@@ -225,9 +264,20 @@ func (s *TCPServersTransportOps) Delete(
ctx context.Context,
req *mantraev1.DeleteServersTransportRequest,
) (*mantraev1.DeleteServersTransportResponse, error) {
serversTransport, err := s.app.Conn.GetQuery().GetTcpServersTransport(ctx, req.Id)
if err != nil {
return nil, err
}
if err := s.app.Conn.GetQuery().DeleteTcpServersTransport(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_ServersTransport{
ServersTransport: serversTransport.ToProto(),
},
})
return &mantraev1.DeleteServersTransportResponse{}, nil
}

View File

@@ -68,14 +68,10 @@ func (s *HTTPServiceOps) Get(
switch id := req.GetIdentifier().(type) {
case *mantraev1.GetServiceRequest_Id:
result, err = s.app.Conn.GetQuery().GetHttpServiceByID(ctx, db.GetHttpServiceByIDParams{
ProfileID: req.ProfileId,
ID: id.Id,
})
result, err = s.app.Conn.GetQuery().GetHttpService(ctx, id.Id)
if err != nil {
return nil, err
}
break
case *mantraev1.GetServiceRequest_Name:
result, err = s.app.Conn.GetQuery().GetHttpServiceByName(ctx, db.GetHttpServiceByNameParams{
ProfileID: req.ProfileId,
@@ -84,7 +80,6 @@ func (s *HTTPServiceOps) Get(
if err != nil {
return nil, err
}
break
default:
return nil, errors.New("invalid service identifier")
}
@@ -114,6 +109,13 @@ func (s *HTTPServiceOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Service{
Service: result.ToProto(),
},
})
return &mantraev1.CreateServiceResponse{
Service: result.ToProto(),
}, nil
@@ -139,6 +141,13 @@ func (s *HTTPServiceOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Service{
Service: result.ToProto(),
},
})
return &mantraev1.UpdateServiceResponse{
Service: result.ToProto(),
}, nil
@@ -148,9 +157,20 @@ func (s *HTTPServiceOps) Delete(
ctx context.Context,
req *mantraev1.DeleteServiceRequest,
) (*mantraev1.DeleteServiceResponse, error) {
service, err := s.app.Conn.GetQuery().GetHttpService(ctx, req.Id)
if err != nil {
return nil, err
}
if err := s.app.Conn.GetQuery().DeleteHttpService(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Service{
Service: service.ToProto(),
},
})
return &mantraev1.DeleteServiceResponse{}, nil
}
@@ -197,14 +217,10 @@ func (s *TCPServiceOps) Get(
switch id := req.GetIdentifier().(type) {
case *mantraev1.GetServiceRequest_Id:
result, err = s.app.Conn.GetQuery().GetTcpServiceByID(ctx, db.GetTcpServiceByIDParams{
ProfileID: req.ProfileId,
ID: id.Id,
})
result, err = s.app.Conn.GetQuery().GetTcpService(ctx, id.Id)
if err != nil {
return nil, err
}
break
case *mantraev1.GetServiceRequest_Name:
result, err = s.app.Conn.GetQuery().GetTcpServiceByName(ctx, db.GetTcpServiceByNameParams{
ProfileID: req.ProfileId,
@@ -213,7 +229,6 @@ func (s *TCPServiceOps) Get(
if err != nil {
return nil, err
}
break
default:
return nil, errors.New("invalid service identifier")
}
@@ -243,6 +258,13 @@ func (s *TCPServiceOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Service{
Service: result.ToProto(),
},
})
return &mantraev1.CreateServiceResponse{
Service: result.ToProto(),
}, nil
@@ -268,6 +290,13 @@ func (s *TCPServiceOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Service{
Service: result.ToProto(),
},
})
return &mantraev1.UpdateServiceResponse{
Service: result.ToProto(),
}, nil
@@ -277,9 +306,20 @@ func (s *TCPServiceOps) Delete(
ctx context.Context,
req *mantraev1.DeleteServiceRequest,
) (*mantraev1.DeleteServiceResponse, error) {
service, err := s.app.Conn.GetQuery().GetTcpService(ctx, req.Id)
if err != nil {
return nil, err
}
if err := s.app.Conn.GetQuery().DeleteTcpService(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Service{
Service: service.ToProto(),
},
})
return &mantraev1.DeleteServiceResponse{}, nil
}
@@ -326,14 +366,10 @@ func (s *UDPServiceOps) Get(
switch id := req.GetIdentifier().(type) {
case *mantraev1.GetServiceRequest_Id:
result, err = s.app.Conn.GetQuery().GetUdpServiceByID(ctx, db.GetUdpServiceByIDParams{
ProfileID: req.ProfileId,
ID: id.Id,
})
result, err = s.app.Conn.GetQuery().GetUdpService(ctx, id.Id)
if err != nil {
return nil, err
}
break
case *mantraev1.GetServiceRequest_Name:
result, err = s.app.Conn.GetQuery().GetUdpServiceByName(ctx, db.GetUdpServiceByNameParams{
ProfileID: req.ProfileId,
@@ -342,7 +378,6 @@ func (s *UDPServiceOps) Get(
if err != nil {
return nil, err
}
break
default:
return nil, errors.New("invalid service identifier")
}
@@ -372,6 +407,13 @@ func (s *UDPServiceOps) Create(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_Service{
Service: result.ToProto(),
},
})
return &mantraev1.CreateServiceResponse{
Service: result.ToProto(),
}, nil
@@ -397,6 +439,13 @@ func (s *UDPServiceOps) Update(
if err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_Service{
Service: result.ToProto(),
},
})
return &mantraev1.UpdateServiceResponse{
Service: result.ToProto(),
}, nil
@@ -406,9 +455,20 @@ func (s *UDPServiceOps) Delete(
ctx context.Context,
req *mantraev1.DeleteServiceRequest,
) (*mantraev1.DeleteServiceResponse, error) {
service, err := s.app.Conn.GetQuery().GetUdpService(ctx, req.Id)
if err != nil {
return nil, err
}
if err := s.app.Conn.GetQuery().DeleteUdpService(ctx, req.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_Service{
Service: service.ToProto(),
},
})
return &mantraev1.DeleteServiceResponse{}, nil
}

View File

@@ -34,9 +34,20 @@ func (s *TraefikInstanceService) DeleteTraefikInstance(
ctx context.Context,
req *connect.Request[mantraev1.DeleteTraefikInstanceRequest],
) (*connect.Response[mantraev1.DeleteTraefikInstanceResponse], error) {
instance, err := s.app.Conn.GetQuery().GetTraefikInstanceByID(ctx, req.Msg.Id)
if err != nil {
return nil, err
}
if err := s.app.Conn.GetQuery().DeleteTraefikInstance(ctx, req.Msg.Id); err != nil {
return nil, err
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_TraefikInstance{
TraefikInstance: instance.ToProto(),
},
})
return connect.NewResponse(&mantraev1.DeleteTraefikInstanceResponse{}), nil
}

View File

@@ -248,6 +248,13 @@ func (s *UserService) CreateUser(
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_CREATED,
Data: &mantraev1.EventStreamResponse_User{
User: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.CreateUserResponse{
User: result.ToProto(),
}), nil
@@ -262,7 +269,7 @@ func (s *UserService) UpdateUser(
Username: req.Msg.Username,
Email: req.Msg.Email,
}
user, err := s.app.Conn.GetQuery().UpdateUser(ctx, params)
result, err := s.app.Conn.GetQuery().UpdateUser(ctx, params)
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
@@ -275,15 +282,21 @@ func (s *UserService) UpdateUser(
}
if err := s.app.Conn.GetQuery().UpdateUserPassword(ctx, db.UpdateUserPasswordParams{
ID: user.ID,
ID: result.ID,
Password: hash,
}); err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_UPDATED,
Data: &mantraev1.EventStreamResponse_User{
User: result.ToProto(),
},
})
return connect.NewResponse(&mantraev1.UpdateUserResponse{
User: user.ToProto(),
User: result.ToProto(),
}), nil
}
@@ -291,9 +304,20 @@ func (s *UserService) DeleteUser(
ctx context.Context,
req *connect.Request[mantraev1.DeleteUserRequest],
) (*connect.Response[mantraev1.DeleteUserResponse], error) {
user, err := s.app.Conn.GetQuery().GetUserByID(ctx, req.Msg.Id)
if err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
if err := s.app.Conn.GetQuery().DeleteUser(ctx, req.Msg.Id); err != nil {
return nil, connect.NewError(connect.CodeInternal, err)
}
s.app.Event.Broadcast(&mantraev1.EventStreamResponse{
Action: mantraev1.EventAction_EVENT_ACTION_DELETED,
Data: &mantraev1.EventStreamResponse_User{
User: user.ToProto(),
},
})
return connect.NewResponse(&mantraev1.DeleteUserResponse{}), nil
}

View File

@@ -41,3 +41,27 @@ func (s *UtilService) GetPublicIP(
Ipv6: ips.IPv6,
}), nil
}
func (s *UtilService) EventStream(
ctx context.Context,
req *connect.Request[mantraev1.EventStreamRequest],
stream *connect.ServerStream[mantraev1.EventStreamResponse],
) error {
id, ch := s.app.Event.Subscribe(req.Msg.ProfileId)
defer s.app.Event.Unsubscribe(id)
for {
select {
case <-ctx.Done():
return ctx.Err()
case event, ok := <-ch:
if !ok {
return nil
}
if err := stream.Send(event); err != nil {
return err
}
}
}
}

View File

@@ -13,6 +13,7 @@ import (
"github.com/mizuchilabs/mantrae/pkg/logger"
"github.com/mizuchilabs/mantrae/pkg/util"
"github.com/mizuchilabs/mantrae/server/internal/backup"
"github.com/mizuchilabs/mantrae/server/internal/event"
"github.com/mizuchilabs/mantrae/server/internal/settings"
"github.com/mizuchilabs/mantrae/server/internal/store"
"github.com/mizuchilabs/mantrae/server/internal/store/db"
@@ -23,6 +24,7 @@ type App struct {
Conn *store.Connection
BM *backup.BackupManager
SM *settings.SettingsManager
Event *event.Broadcaster
}
func Setup(ctx context.Context) (*App, error) {
@@ -38,7 +40,6 @@ func Setup(ctx context.Context) (*App, error) {
return nil, err
}
// app.Event = events.NewEventBroadcaster()
app.Conn = store.NewConnection("")
app.SM = settings.NewManager(app.Conn)
app.SM.Start(ctx)
@@ -46,6 +47,8 @@ func Setup(ctx context.Context) (*App, error) {
app.BM = backup.NewManager(app.Conn, app.SM)
app.BM.Start(ctx)
app.Event = event.NewBroadcaster(ctx)
if err := app.setupDefaultData(ctx); err != nil {
return nil, err
}

View File

@@ -0,0 +1,114 @@
package event
import (
"context"
"log/slog"
"sync"
mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1"
)
type Broadcaster struct {
mu sync.RWMutex
clients map[int]*subscriber
nextID int
ctx context.Context
cancel context.CancelFunc
}
type subscriber struct {
profileID int64
ch chan *mantraev1.EventStreamResponse
}
func NewBroadcaster(parent context.Context) *Broadcaster {
ctx, cancel := context.WithCancel(parent)
b := &Broadcaster{
clients: make(map[int]*subscriber),
ctx: ctx,
cancel: cancel,
}
go b.cleanup()
return b
}
func (b *Broadcaster) Subscribe(
profileID int64,
) (id int, ch <-chan *mantraev1.EventStreamResponse) {
b.mu.Lock()
defer b.mu.Unlock()
id = b.nextID
b.nextID++
c := make(chan *mantraev1.EventStreamResponse, 32)
b.clients[id] = &subscriber{
profileID: profileID,
ch: c,
}
return id, c
}
func (b *Broadcaster) Unsubscribe(id int) {
b.mu.Lock()
defer b.mu.Unlock()
if sub, ok := b.clients[id]; ok {
close(sub.ch)
delete(b.clients, id)
}
}
func (b *Broadcaster) Broadcast(event *mantraev1.EventStreamResponse) {
profileID, isGlobal := getProfileIDFromEvent(event)
b.mu.RLock()
defer b.mu.RUnlock()
for _, sub := range b.clients {
if !isGlobal && sub.profileID != profileID {
continue
}
select {
case sub.ch <- event:
default:
close(sub.ch)
}
}
}
func (b *Broadcaster) cleanup() {
<-b.ctx.Done()
slog.Info("Broadcaster is shutting down")
b.mu.Lock()
defer b.mu.Unlock()
for _, client := range b.clients {
close(client.ch)
}
b.clients = nil
}
func getProfileIDFromEvent(event *mantraev1.EventStreamResponse) (int64, bool) {
switch d := event.Data.(type) {
case *mantraev1.EventStreamResponse_Profile:
return d.Profile.Id, false
case *mantraev1.EventStreamResponse_Agent:
return d.Agent.ProfileId, false
case *mantraev1.EventStreamResponse_EntryPoint:
return d.EntryPoint.ProfileId, false
case *mantraev1.EventStreamResponse_Router:
return d.Router.ProfileId, false
case *mantraev1.EventStreamResponse_Service:
return d.Service.ProfileId, false
case *mantraev1.EventStreamResponse_Middleware:
return d.Middleware.ProfileId, false
case *mantraev1.EventStreamResponse_ServersTransport:
return d.ServersTransport.ProfileId, false
case *mantraev1.EventStreamResponse_TraefikInstance:
return d.TraefikInstance.ProfileId, false
case *mantraev1.EventStreamResponse_DnsProvider:
return 0, true
case *mantraev1.EventStreamResponse_User:
return 0, true
default:
return 0, false
}
}

View File

@@ -249,8 +249,8 @@ func Prepare(ctx context.Context, db DBTX) (*Queries, error) {
if q.getHttpServersTransportStmt, err = db.PrepareContext(ctx, getHttpServersTransport); err != nil {
return nil, fmt.Errorf("error preparing query GetHttpServersTransport: %w", err)
}
if q.getHttpServiceByIDStmt, err = db.PrepareContext(ctx, getHttpServiceByID); err != nil {
return nil, fmt.Errorf("error preparing query GetHttpServiceByID: %w", err)
if q.getHttpServiceStmt, err = db.PrepareContext(ctx, getHttpService); err != nil {
return nil, fmt.Errorf("error preparing query GetHttpService: %w", err)
}
if q.getHttpServiceByNameStmt, err = db.PrepareContext(ctx, getHttpServiceByName); err != nil {
return nil, fmt.Errorf("error preparing query GetHttpServiceByName: %w", err)
@@ -282,8 +282,8 @@ func Prepare(ctx context.Context, db DBTX) (*Queries, error) {
if q.getTcpServersTransportStmt, err = db.PrepareContext(ctx, getTcpServersTransport); err != nil {
return nil, fmt.Errorf("error preparing query GetTcpServersTransport: %w", err)
}
if q.getTcpServiceByIDStmt, err = db.PrepareContext(ctx, getTcpServiceByID); err != nil {
return nil, fmt.Errorf("error preparing query GetTcpServiceByID: %w", err)
if q.getTcpServiceStmt, err = db.PrepareContext(ctx, getTcpService); err != nil {
return nil, fmt.Errorf("error preparing query GetTcpService: %w", err)
}
if q.getTcpServiceByNameStmt, err = db.PrepareContext(ctx, getTcpServiceByName); err != nil {
return nil, fmt.Errorf("error preparing query GetTcpServiceByName: %w", err)
@@ -300,8 +300,8 @@ func Prepare(ctx context.Context, db DBTX) (*Queries, error) {
if q.getUdpRoutersUsingEntryPointStmt, err = db.PrepareContext(ctx, getUdpRoutersUsingEntryPoint); err != nil {
return nil, fmt.Errorf("error preparing query GetUdpRoutersUsingEntryPoint: %w", err)
}
if q.getUdpServiceByIDStmt, err = db.PrepareContext(ctx, getUdpServiceByID); err != nil {
return nil, fmt.Errorf("error preparing query GetUdpServiceByID: %w", err)
if q.getUdpServiceStmt, err = db.PrepareContext(ctx, getUdpService); err != nil {
return nil, fmt.Errorf("error preparing query GetUdpService: %w", err)
}
if q.getUdpServiceByNameStmt, err = db.PrepareContext(ctx, getUdpServiceByName); err != nil {
return nil, fmt.Errorf("error preparing query GetUdpServiceByName: %w", err)
@@ -866,9 +866,9 @@ func (q *Queries) Close() error {
err = fmt.Errorf("error closing getHttpServersTransportStmt: %w", cerr)
}
}
if q.getHttpServiceByIDStmt != nil {
if cerr := q.getHttpServiceByIDStmt.Close(); cerr != nil {
err = fmt.Errorf("error closing getHttpServiceByIDStmt: %w", cerr)
if q.getHttpServiceStmt != nil {
if cerr := q.getHttpServiceStmt.Close(); cerr != nil {
err = fmt.Errorf("error closing getHttpServiceStmt: %w", cerr)
}
}
if q.getHttpServiceByNameStmt != nil {
@@ -921,9 +921,9 @@ func (q *Queries) Close() error {
err = fmt.Errorf("error closing getTcpServersTransportStmt: %w", cerr)
}
}
if q.getTcpServiceByIDStmt != nil {
if cerr := q.getTcpServiceByIDStmt.Close(); cerr != nil {
err = fmt.Errorf("error closing getTcpServiceByIDStmt: %w", cerr)
if q.getTcpServiceStmt != nil {
if cerr := q.getTcpServiceStmt.Close(); cerr != nil {
err = fmt.Errorf("error closing getTcpServiceStmt: %w", cerr)
}
}
if q.getTcpServiceByNameStmt != nil {
@@ -951,9 +951,9 @@ func (q *Queries) Close() error {
err = fmt.Errorf("error closing getUdpRoutersUsingEntryPointStmt: %w", cerr)
}
}
if q.getUdpServiceByIDStmt != nil {
if cerr := q.getUdpServiceByIDStmt.Close(); cerr != nil {
err = fmt.Errorf("error closing getUdpServiceByIDStmt: %w", cerr)
if q.getUdpServiceStmt != nil {
if cerr := q.getUdpServiceStmt.Close(); cerr != nil {
err = fmt.Errorf("error closing getUdpServiceStmt: %w", cerr)
}
}
if q.getUdpServiceByNameStmt != nil {
@@ -1375,7 +1375,7 @@ type Queries struct {
getHttpRoutersUsingEntryPointStmt *sql.Stmt
getHttpRoutersUsingMiddlewareStmt *sql.Stmt
getHttpServersTransportStmt *sql.Stmt
getHttpServiceByIDStmt *sql.Stmt
getHttpServiceStmt *sql.Stmt
getHttpServiceByNameStmt *sql.Stmt
getProfileStmt *sql.Stmt
getProfileByNameStmt *sql.Stmt
@@ -1386,13 +1386,13 @@ type Queries struct {
getTcpRoutersUsingEntryPointStmt *sql.Stmt
getTcpRoutersUsingMiddlewareStmt *sql.Stmt
getTcpServersTransportStmt *sql.Stmt
getTcpServiceByIDStmt *sql.Stmt
getTcpServiceStmt *sql.Stmt
getTcpServiceByNameStmt *sql.Stmt
getTraefikInstanceByIDStmt *sql.Stmt
getTraefikInstanceByNameStmt *sql.Stmt
getUdpRouterStmt *sql.Stmt
getUdpRoutersUsingEntryPointStmt *sql.Stmt
getUdpServiceByIDStmt *sql.Stmt
getUdpServiceStmt *sql.Stmt
getUdpServiceByNameStmt *sql.Stmt
getUserByEmailStmt *sql.Stmt
getUserByIDStmt *sql.Stmt
@@ -1535,7 +1535,7 @@ func (q *Queries) WithTx(tx *sql.Tx) *Queries {
getHttpRoutersUsingEntryPointStmt: q.getHttpRoutersUsingEntryPointStmt,
getHttpRoutersUsingMiddlewareStmt: q.getHttpRoutersUsingMiddlewareStmt,
getHttpServersTransportStmt: q.getHttpServersTransportStmt,
getHttpServiceByIDStmt: q.getHttpServiceByIDStmt,
getHttpServiceStmt: q.getHttpServiceStmt,
getHttpServiceByNameStmt: q.getHttpServiceByNameStmt,
getProfileStmt: q.getProfileStmt,
getProfileByNameStmt: q.getProfileByNameStmt,
@@ -1546,13 +1546,13 @@ func (q *Queries) WithTx(tx *sql.Tx) *Queries {
getTcpRoutersUsingEntryPointStmt: q.getTcpRoutersUsingEntryPointStmt,
getTcpRoutersUsingMiddlewareStmt: q.getTcpRoutersUsingMiddlewareStmt,
getTcpServersTransportStmt: q.getTcpServersTransportStmt,
getTcpServiceByIDStmt: q.getTcpServiceByIDStmt,
getTcpServiceStmt: q.getTcpServiceStmt,
getTcpServiceByNameStmt: q.getTcpServiceByNameStmt,
getTraefikInstanceByIDStmt: q.getTraefikInstanceByIDStmt,
getTraefikInstanceByNameStmt: q.getTraefikInstanceByNameStmt,
getUdpRouterStmt: q.getUdpRouterStmt,
getUdpRoutersUsingEntryPointStmt: q.getUdpRoutersUsingEntryPointStmt,
getUdpServiceByIDStmt: q.getUdpServiceByIDStmt,
getUdpServiceStmt: q.getUdpServiceStmt,
getUdpServiceByNameStmt: q.getUdpServiceByNameStmt,
getUserByEmailStmt: q.getUserByEmailStmt,
getUserByIDStmt: q.getUserByIDStmt,

View File

@@ -89,23 +89,17 @@ func (q *Queries) DeleteHttpService(ctx context.Context, id int64) error {
return err
}
const getHttpServiceByID = `-- name: GetHttpServiceByID :one
const getHttpService = `-- name: GetHttpService :one
SELECT
id, profile_id, agent_id, name, config, enabled, created_at, updated_at
FROM
http_services
WHERE
profile_id = ?
AND id = ?
id = ?
`
type GetHttpServiceByIDParams struct {
ProfileID int64 `json:"profileId"`
ID int64 `json:"id"`
}
func (q *Queries) GetHttpServiceByID(ctx context.Context, arg GetHttpServiceByIDParams) (HttpService, error) {
row := q.queryRow(ctx, q.getHttpServiceByIDStmt, getHttpServiceByID, arg.ProfileID, arg.ID)
func (q *Queries) GetHttpService(ctx context.Context, id int64) (HttpService, error) {
row := q.queryRow(ctx, q.getHttpServiceStmt, getHttpService, id)
var i HttpService
err := row.Scan(
&i.ID,

View File

@@ -84,7 +84,7 @@ type Querier interface {
GetHttpRoutersUsingEntryPoint(ctx context.Context, arg GetHttpRoutersUsingEntryPointParams) ([]GetHttpRoutersUsingEntryPointRow, error)
GetHttpRoutersUsingMiddleware(ctx context.Context, arg GetHttpRoutersUsingMiddlewareParams) ([]GetHttpRoutersUsingMiddlewareRow, error)
GetHttpServersTransport(ctx context.Context, id int64) (HttpServersTransport, error)
GetHttpServiceByID(ctx context.Context, arg GetHttpServiceByIDParams) (HttpService, error)
GetHttpService(ctx context.Context, id int64) (HttpService, error)
GetHttpServiceByName(ctx context.Context, arg GetHttpServiceByNameParams) (HttpService, error)
GetProfile(ctx context.Context, id int64) (Profile, error)
GetProfileByName(ctx context.Context, name string) (Profile, error)
@@ -95,13 +95,13 @@ type Querier interface {
GetTcpRoutersUsingEntryPoint(ctx context.Context, arg GetTcpRoutersUsingEntryPointParams) ([]GetTcpRoutersUsingEntryPointRow, error)
GetTcpRoutersUsingMiddleware(ctx context.Context, arg GetTcpRoutersUsingMiddlewareParams) ([]GetTcpRoutersUsingMiddlewareRow, error)
GetTcpServersTransport(ctx context.Context, id int64) (TcpServersTransport, error)
GetTcpServiceByID(ctx context.Context, arg GetTcpServiceByIDParams) (TcpService, error)
GetTcpService(ctx context.Context, id int64) (TcpService, error)
GetTcpServiceByName(ctx context.Context, arg GetTcpServiceByNameParams) (TcpService, error)
GetTraefikInstanceByID(ctx context.Context, id int64) (TraefikInstance, error)
GetTraefikInstanceByName(ctx context.Context, arg GetTraefikInstanceByNameParams) (TraefikInstance, error)
GetUdpRouter(ctx context.Context, id int64) (UdpRouter, error)
GetUdpRoutersUsingEntryPoint(ctx context.Context, arg GetUdpRoutersUsingEntryPointParams) ([]GetUdpRoutersUsingEntryPointRow, error)
GetUdpServiceByID(ctx context.Context, arg GetUdpServiceByIDParams) (UdpService, error)
GetUdpService(ctx context.Context, id int64) (UdpService, error)
GetUdpServiceByName(ctx context.Context, arg GetUdpServiceByNameParams) (UdpService, error)
GetUserByEmail(ctx context.Context, email *string) (User, error)
GetUserByID(ctx context.Context, id string) (User, error)

View File

@@ -89,23 +89,17 @@ func (q *Queries) DeleteTcpService(ctx context.Context, id int64) error {
return err
}
const getTcpServiceByID = `-- name: GetTcpServiceByID :one
const getTcpService = `-- name: GetTcpService :one
SELECT
id, profile_id, agent_id, name, config, enabled, created_at, updated_at
FROM
tcp_services
WHERE
profile_id = ?
AND id = ?
id = ?
`
type GetTcpServiceByIDParams struct {
ProfileID int64 `json:"profileId"`
ID int64 `json:"id"`
}
func (q *Queries) GetTcpServiceByID(ctx context.Context, arg GetTcpServiceByIDParams) (TcpService, error) {
row := q.queryRow(ctx, q.getTcpServiceByIDStmt, getTcpServiceByID, arg.ProfileID, arg.ID)
func (q *Queries) GetTcpService(ctx context.Context, id int64) (TcpService, error) {
row := q.queryRow(ctx, q.getTcpServiceStmt, getTcpService, id)
var i TcpService
err := row.Scan(
&i.ID,

View File

@@ -89,23 +89,17 @@ func (q *Queries) DeleteUdpService(ctx context.Context, id int64) error {
return err
}
const getUdpServiceByID = `-- name: GetUdpServiceByID :one
const getUdpService = `-- name: GetUdpService :one
SELECT
id, profile_id, agent_id, name, config, enabled, created_at, updated_at
FROM
udp_services
WHERE
profile_id = ?
AND id = ?
id = ?
`
type GetUdpServiceByIDParams struct {
ProfileID int64 `json:"profileId"`
ID int64 `json:"id"`
}
func (q *Queries) GetUdpServiceByID(ctx context.Context, arg GetUdpServiceByIDParams) (UdpService, error) {
row := q.queryRow(ctx, q.getUdpServiceByIDStmt, getUdpServiceByID, arg.ProfileID, arg.ID)
func (q *Queries) GetUdpService(ctx context.Context, id int64) (UdpService, error) {
row := q.queryRow(ctx, q.getUdpServiceStmt, getUdpService, id)
var i UdpService
err := row.Scan(
&i.ID,

View File

@@ -11,14 +11,13 @@ INSERT INTO
VALUES
(?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) RETURNING *;
-- name: GetHttpServiceByID :one
-- name: GetHttpService :one
SELECT
*
FROM
http_services
WHERE
profile_id = ?
AND id = ?;
id = ?;
-- name: GetHttpServiceByName :one
SELECT

View File

@@ -11,14 +11,13 @@ INSERT INTO
VALUES
(?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) RETURNING *;
-- name: GetTcpServiceByID :one
-- name: GetTcpService :one
SELECT
*
FROM
tcp_services
WHERE
profile_id = ?
AND id = ?;
id = ?;
-- name: GetTcpServiceByName :one
SELECT

View File

@@ -11,14 +11,13 @@ INSERT INTO
VALUES
(?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) RETURNING *;
-- name: GetUdpServiceByID :one
-- name: GetUdpService :one
SELECT
*
FROM
udp_services
WHERE
profile_id = ?
AND id = ?;
id = ?;
-- name: GetUdpServiceByName :one
SELECT

View File

@@ -1,12 +1,12 @@
version: "2"
sql:
- engine: "sqlite"
schema: "internal/store/migrations"
queries: "internal/store/queries"
schema: "server/internal/store/migrations"
queries: "server/internal/store/queries"
gen:
go:
package: "db"
out: "internal/store/db"
out: "server/internal/store/db"
json_tags_case_style: "camel"
emit_json_tags: true # Adds JSON tags to generated structs
emit_interface: true # Output a Querier interface in the generated package
@@ -15,86 +15,86 @@ sql:
overrides:
- column: "http_routers.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "HTTPRouter"
pointer: true
- column: "tcp_routers.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "TCPRouter"
pointer: true
- column: "udp_routers.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "UDPRouter"
pointer: true
- column: "http_services.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "HTTPService"
pointer: true
- column: "tcp_services.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "TCPService"
pointer: true
- column: "udp_services.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "UDPService"
pointer: true
- column: "http_middlewares.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "HTTPMiddleware"
pointer: true
- column: "tcp_middlewares.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "TCPMiddleware"
pointer: true
- column: "http_servers_transports.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "HTTPServersTransport"
pointer: true
- column: "tcp_servers_transports.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "TCPServersTransport"
pointer: true
- column: "traefik_instances.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "Configuration"
pointer: true
- column: "traefik_instances.entrypoints"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "EntryPoints"
pointer: true
- column: "traefik_instances.overview"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "Overview"
pointer: true
- column: "traefik_instances.version"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "Version"
pointer: true
- column: "dns_providers.config"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "DNSProviderConfig"
pointer: true
- column: "agents.private_ips"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "AgentPrivateIPs"
pointer: true
- column: "agents.containers"
go_type:
import: "github.com/mizuchilabs/mantrae/internal/store/schema"
import: "github.com/mizuchilabs/mantrae/server/internal/store/schema"
type: "AgentContainers"
pointer: true

View File

@@ -1,54 +1,52 @@
import type { DescService } from "@bufbuild/protobuf";
import { createClient, type Client } from "@connectrpc/connect";
import { createConnectTransport } from "@connectrpc/connect-web";
import { ProfileService, type Profile } from "./gen/mantrae/v1/profile_pb";
import { UserService } from "./gen/mantrae/v1/user_pb";
import { RouterService } from "./gen/mantrae/v1/router_pb";
import { ServiceService } from "./gen/mantrae/v1/service_pb";
import { MiddlewareService } from "./gen/mantrae/v1/middleware_pb";
import { SettingService } from "./gen/mantrae/v1/setting_pb";
import { BackupService } from "./gen/mantrae/v1/backup_pb";
import { EntryPointService } from "./gen/mantrae/v1/entry_point_pb";
import { DnsProviderService } from "./gen/mantrae/v1/dns_provider_pb";
import { UtilService } from "./gen/mantrae/v1/util_pb";
import { AgentService } from "./gen/mantrae/v1/agent_pb";
import { AuditLogService } from "./gen/mantrae/v1/auditlog_pb";
import { ServersTransportService } from "./gen/mantrae/v1/servers_transport_pb";
import { TraefikInstanceService } from "./gen/mantrae/v1/traefik_instance_pb";
import { toast } from "svelte-sonner";
import { profile } from "./stores/profile";
import { baseURL } from "./stores/common";
import type { DescService } from '@bufbuild/protobuf';
import { createClient, type Client } from '@connectrpc/connect';
import { createConnectTransport } from '@connectrpc/connect-web';
import { ProfileService, type Profile } from './gen/mantrae/v1/profile_pb';
import { UserService } from './gen/mantrae/v1/user_pb';
import { RouterService } from './gen/mantrae/v1/router_pb';
import { ServiceService } from './gen/mantrae/v1/service_pb';
import { MiddlewareService } from './gen/mantrae/v1/middleware_pb';
import { SettingService } from './gen/mantrae/v1/setting_pb';
import { BackupService } from './gen/mantrae/v1/backup_pb';
import { EntryPointService } from './gen/mantrae/v1/entry_point_pb';
import { DnsProviderService } from './gen/mantrae/v1/dns_provider_pb';
import { UtilService } from './gen/mantrae/v1/util_pb';
import { AgentService } from './gen/mantrae/v1/agent_pb';
import { AuditLogService } from './gen/mantrae/v1/auditlog_pb';
import { ServersTransportService } from './gen/mantrae/v1/servers_transport_pb';
import { TraefikInstanceService } from './gen/mantrae/v1/traefik_instance_pb';
import { toast } from 'svelte-sonner';
import { profile } from './stores/profile';
import { baseURL } from './stores/common';
export function useClient<T extends DescService>(
service: T,
customFetch?: typeof fetch,
customFetch?: typeof fetch
): Client<T> {
const wrappedFetch: typeof fetch = (input, init = {}) => {
return (customFetch || fetch)(input, {
...init,
headers: new Headers(init.headers || {}),
credentials: "include",
credentials: 'include'
});
};
if (!baseURL.value) throw new Error("Base URL not set");
if (!baseURL.value) throw new Error('Base URL not set');
const transport = createConnectTransport({
baseUrl: baseURL.value,
fetch: wrappedFetch,
fetch: wrappedFetch
});
return createClient(service, transport);
}
// Basic health check function
export async function checkHealth(
customFetch?: typeof fetch,
): Promise<boolean> {
export async function checkHealth(customFetch?: typeof fetch): Promise<boolean> {
try {
if (!baseURL.value) throw new Error("Base URL not set");
if (!baseURL.value) throw new Error('Base URL not set');
if (!customFetch) customFetch = fetch;
const res = await customFetch(`${baseURL.value}/healthz`, {
method: "GET",
method: 'GET'
});
return res.ok;
} catch {
@@ -64,52 +62,48 @@ export async function upload(input: HTMLInputElement | null, endpoint: string) {
if (!input?.files?.length) return;
const body = new FormData();
body.append("file", input.files[0]);
body.append('file', input.files[0]);
const response = await fetch(`${baseURL.value}/upload/${endpoint}`, {
method: "POST",
method: 'POST',
body,
credentials: "include",
credentials: 'include'
});
if (!response.ok) {
throw new Error("Failed to upload");
throw new Error('Failed to upload');
}
toast.success("Uploaded successfully");
toast.success('Uploaded successfully');
}
// Get dynamic traefik config
export async function getConfig(format: string) {
if (!profile.isValid() || !profile.token) return "";
if (!profile.isValid() || !profile.token) return '';
const headers = new Headers();
// headers.set("Mantrae-Traefik-Token", profile.token);
if (format === "yaml") {
headers.set("Accept", "application/x-yaml");
if (format === 'yaml') {
headers.set('Accept', 'application/x-yaml');
}
try {
const response = await fetch(
`${baseURL.value}/api/${profile.name}?token=${profile.token}`,
{
headers,
},
);
if (!response.ok) return "";
const response = await fetch(`${baseURL.value}/api/${profile.name}?token=${profile.token}`, {
headers
});
if (!response.ok) return '';
return await response.text();
} catch (err) {
const e = err as Error;
toast.error("Failed to fetch config", { description: e.message });
toast.error('Failed to fetch config', { description: e.message });
}
return "";
return '';
}
// Build traefik connection string
export async function buildConnectionString(p: Profile) {
const item = p ?? profile?.value;
if (!item) return "";
const serverUrl = await settingClient.getSetting({ key: "server_url" });
if (!serverUrl.value) return "";
if (!item) return '';
const serverUrl = await settingClient.getSetting({ key: 'server_url' });
if (!serverUrl.value) return '';
return `${serverUrl.value}/api/${item.name}?token=${item.token}`;
}

View File

@@ -7,7 +7,7 @@
import { Label } from '$lib/components/ui/label/index.js';
import { toast } from 'svelte-sonner';
import Separator from '../ui/separator/separator.svelte';
import { DateFormat, pageIndex, pageSize } from '$lib/stores/common';
import { DateFormat } from '$lib/stores/common';
import { Check, Container, Copy, RotateCcw, X } from '@lucide/svelte';
import { agentClient, settingClient } from '$lib/api';
import { profile } from '$lib/stores/profile';
@@ -19,12 +19,11 @@
import { scale } from 'svelte/transition';
interface Props {
data: Agent[];
item: Agent;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
let newIP = $state('');
@@ -40,14 +39,6 @@
toast.success(`Agent ${item.hostname} created successfully`);
open = false;
}
// Refresh data
let response = await agentClient.listAgents({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.agents;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to save agent', { description: e.message });
@@ -58,7 +49,6 @@
try {
await agentClient.deleteAgent({ id: item.id });
data = data.filter((e) => e.id !== item.id);
toast.success('Agent deleted successfully');
} catch (err) {
const e = ConnectError.from(err);
@@ -73,14 +63,6 @@
if (!response.agent) throw new Error('Failed to rotate token');
item.token = response.agent.token;
toast.success('Token rotated successfully');
// Refresh data
let response2 = await agentClient.listAgents({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response2.agents;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to rotate token', { description: e.message });

View File

@@ -17,17 +17,15 @@
} from '$lib/gen/mantrae/v1/dns_provider_pb';
import { dnsClient, utilClient } from '$lib/api';
import { ConnectError } from '@connectrpc/connect';
import { pageIndex, pageSize } from '$lib/stores/common';
import { dnsProviderTypes } from '$lib/types';
import CustomSwitch from '../ui/custom-switch/custom-switch.svelte';
interface Props {
data: DnsProvider[];
item: DnsProvider;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
const handleSubmit = async () => {
try {
@@ -49,13 +47,6 @@
});
toast.success('DNS Provider created successfully');
}
// Refresh data
let response = await dnsClient.listDnsProviders({
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.dnsProviders;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to save dnsProvider', {
@@ -70,7 +61,6 @@
try {
await dnsClient.deleteDnsProvider({ id: item.id });
data = data.filter((e) => e.id !== item.id);
toast.success('EntryPoint deleted successfully');
} catch (err) {
const e = ConnectError.from(err);

View File

@@ -9,16 +9,14 @@
import { ConnectError } from '@connectrpc/connect';
import type { EntryPoint } from '$lib/gen/mantrae/v1/entry_point_pb';
import { profile } from '$lib/stores/profile';
import { pageIndex, pageSize } from '$lib/stores/common';
import CustomSwitch from '../ui/custom-switch/custom-switch.svelte';
interface Props {
data: EntryPoint[];
item: EntryPoint;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
const handleSubmit = async () => {
try {
@@ -39,14 +37,6 @@
});
toast.success('EntryPoint created successfully');
}
// Refresh data
let response = await entryPointClient.listEntryPoints({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.entryPoints;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to save entry point', { description: e.message });
@@ -59,7 +49,6 @@
try {
await entryPointClient.deleteEntryPoint({ id: item.id });
data = data.filter((e) => e.id !== item.id);
toast.success('EntryPoint deleted successfully');
} catch (err) {
const e = ConnectError.from(err);

View File

@@ -10,18 +10,16 @@
import { middlewareClient } from '$lib/api';
import { ConnectError } from '@connectrpc/connect';
import { profile } from '$lib/stores/profile';
import { pageIndex, pageSize } from '$lib/stores/common';
import HTTPMiddlewareForm from '../forms/HTTPMiddlewareForm.svelte';
import TCPMiddlewareForm from '../forms/TCPMiddlewareForm.svelte';
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
import { protocolTypes } from '$lib/types';
interface Props {
data: Middleware[];
item: Middleware;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
const handleSubmit = async () => {
try {
@@ -43,14 +41,6 @@
});
toast.success('Middleware created successfully');
}
// Refresh data
const response = await middlewareClient.listMiddlewares({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.middlewares;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to save item', { description: e.message });
@@ -64,14 +54,6 @@
try {
await middlewareClient.deleteMiddleware({ id: item.id, type: item.type });
toast.success('Middleware deleted successfully');
// Refresh data
const response = await middlewareClient.listMiddlewares({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.middlewares;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to delete item', { description: e.message });

View File

@@ -11,7 +11,6 @@
import { Label } from '$lib/components/ui/label';
import { type Router } from '$lib/gen/mantrae/v1/router_pb';
import { type Service } from '$lib/gen/mantrae/v1/service_pb';
import { pageIndex, pageSize } from '$lib/stores/common';
import { profile } from '$lib/stores/profile';
import { protocolTypes, unmarshalConfig } from '$lib/types';
import { ConnectError } from '@connectrpc/connect';
@@ -35,12 +34,11 @@
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
interface Props {
data: Router[];
item: Router;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
let service = $state({} as Service);
let hasLoadedService = $state(false);
@@ -130,14 +128,6 @@
enabled: service.enabled
});
}
// Refresh data
const response = await routerClient.listRouters({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.routers;
} catch (err) {
const e = ConnectError.from(err);
toast.error(`Failed to ${item.id ? 'update' : 'save'} router`, {
@@ -153,7 +143,6 @@
try {
await routerClient.deleteRouter({ id: item.id, type: item.type });
toast.success('Router deleted successfully');
data = data.filter((r) => r.id !== item.id);
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to delete router', { description: e.message });
@@ -211,7 +200,6 @@
<Card.Description>Manage DNS providers for this router</Card.Description>
</div>
<DnsProviderSelect
bind:data
bind:item
disabled={item.type === ProtocolType.UDP || !item.id}
/>
@@ -288,11 +276,7 @@
</div>
<!-- DNS Providers -->
<DnsProviderSelect
bind:data
bind:item
disabled={item.type === ProtocolType.UDP || !item.id}
/>
<DnsProviderSelect bind:item disabled={item.type === ProtocolType.UDP || !item.id} />
</Card.Header>
<Card.Content class="space-y-4">
<div class="grid w-full grid-cols-1 gap-4 sm:grid-cols-3 sm:gap-2">

View File

@@ -21,12 +21,11 @@
import { protocolTypes } from '$lib/types';
interface Props {
data: ServersTransport[];
item: ServersTransport;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
const handleSubmit = async () => {
try {
@@ -48,14 +47,6 @@
});
toast.success('Transport created successfully');
}
// Refresh data
let response = await serversTransportClient.listServersTransports({
profileId: profile.id,
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.serversTransports;
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to save transport', { description: e.message });
@@ -68,7 +59,6 @@
try {
await serversTransportClient.deleteServersTransport({ id: item.id });
data = data.filter((e) => e.id !== item.id);
toast.success('Transport deleted successfully');
} catch (err) {
const e = ConnectError.from(err);

View File

@@ -9,17 +9,15 @@
import { UpdateUserRequestSchema, type User } from '$lib/gen/mantrae/v1/user_pb';
import { userClient } from '$lib/api';
import { ConnectError } from '@connectrpc/connect';
import { pageIndex, pageSize } from '$lib/stores/common';
import { user } from '$lib/stores/user';
import { create } from '@bufbuild/protobuf';
interface Props {
data?: User[];
item: User;
open?: boolean;
}
let { data = $bindable(), item = $bindable(), open = $bindable(false) }: Props = $props();
let { item = $bindable(), open = $bindable(false) }: Props = $props();
let password = $state('');
let isSelf = $derived(item?.id === user.value?.id);
@@ -44,14 +42,6 @@
});
toast.success(`User ${item.username} created successfully.`);
}
// Refresh data
if (!data) return;
let response = await userClient.listUsers({
limit: BigInt(pageSize.value ?? 10),
offset: BigInt(pageIndex.value ?? 0)
});
data = response.users;
} catch (err) {
const e = ConnectError.from(err);
toast.error(`Failed to update user`, { description: e.message });
@@ -65,7 +55,6 @@
try {
await userClient.deleteUser({ id: item.id });
if (data) data = data.filter((e) => e.id !== item.id);
toast.success('User deleted successfully');
} catch (err) {
const e = ConnectError.from(err);

View File

@@ -69,7 +69,7 @@
<ProfileModal bind:item={modalProfile} bind:open={modalProfileOpen} />
{#if user.isLoggedIn() && user.value}
<UserModal bind:open={modalUserOpen} bind:item={user.value} data={undefined} />
<UserModal bind:open={modalUserOpen} bind:item={user.value} />
{/if}
<Sidebar.Root collapsible="offcanvas" {...restProps}>

View File

@@ -27,7 +27,6 @@
import {
ArrowDown,
ArrowUp,
Check,
ChevronLeft,
ChevronRight,
ChevronsLeft,
@@ -44,8 +43,6 @@
type DataTableProps<TData, TValue> = {
data: TData[];
columns: ColumnDef<TData, TValue>[];
rowCount: number;
viewMode?: 'table' | 'grid';
onPaginationChange?: (pagination: PaginationState) => void;
onSortingChange?: (sorting: SortingState) => void;
onRowSelection?: (rowSelection: RowSelectionState) => void;
@@ -56,26 +53,18 @@
label: string;
onClick: () => void;
};
cardConfig?: {
titleKey?: string;
subtitleKey?: string;
excludeColumns?: string[];
};
};
let {
data,
columns,
rowCount,
viewMode = 'table',
onPaginationChange,
onSortingChange,
onRowSelection,
getRowClassName,
rowClassModifiers,
bulkActions,
createButton,
cardConfig = {}
createButton
}: DataTableProps<TData, TValue> = $props();
// Pagination
@@ -84,7 +73,6 @@
pageIndex: pageIndex.value ?? 0,
pageSize: pageSize.value ?? 10
});
let pageCount = $derived(Math.ceil(rowCount / pagination.pageSize));
let sorting = $state<SortingState>([]);
let columnFilters = $derived<ColumnFiltersState>([]);
let columnVisibility = $state<VisibilityState>({});
@@ -118,13 +106,6 @@
},
...columns
],
manualPagination: true,
get rowCount() {
return rowCount;
},
get pageCount() {
return pageCount;
},
filterFns: {
fuzzy: (row, columnId, value, addMeta) => {
const itemRank = rankItem(row.getValue(columnId), value);
@@ -232,17 +213,6 @@
const column = table.getColumn(columnId);
if (column) column.setFilterValue(undefined);
}
function getVisibleColumns() {
return table
.getAllColumns()
.filter(
(col) =>
col.getIsVisible() &&
col.id !== 'select' &&
col.id !== 'actions' &&
!cardConfig.excludeColumns?.includes(col.id)
);
}
</script>
<div>
@@ -277,26 +247,24 @@
{/if}
<!-- Column Visibility -->
{#if viewMode === 'table'}
<DropdownMenu.Root>
<DropdownMenu.Trigger>
{#snippet child({ props })}
<Button {...props} variant="outline" class="ml-auto">Columns</Button>
{/snippet}
</DropdownMenu.Trigger>
<DropdownMenu.Content align="end">
{#each table.getAllColumns().filter((col) => col.getCanHide()) as column (column.id)}
<DropdownMenu.CheckboxItem
class="capitalize"
closeOnSelect={false}
bind:checked={() => column.getIsVisible(), (v) => column.toggleVisibility(!!v)}
>
{column.columnDef.header}
</DropdownMenu.CheckboxItem>
{/each}
</DropdownMenu.Content>
</DropdownMenu.Root>
{/if}
<DropdownMenu.Root>
<DropdownMenu.Trigger>
{#snippet child({ props })}
<Button {...props} variant="outline" class="ml-auto">Columns</Button>
{/snippet}
</DropdownMenu.Trigger>
<DropdownMenu.Content align="end">
{#each table.getAllColumns().filter((col) => col.getCanHide()) as column (column.id)}
<DropdownMenu.CheckboxItem
class="capitalize"
closeOnSelect={false}
bind:checked={() => column.getIsVisible(), (v) => column.toggleVisibility(!!v)}
>
{column.columnDef.header}
</DropdownMenu.CheckboxItem>
{/each}
</DropdownMenu.Content>
</DropdownMenu.Root>
{#if createButton}
<Button variant="default" onclick={createButton.onClick}>
@@ -306,204 +274,72 @@
{/if}
</div>
{#if viewMode === 'table'}
<!-- Table -->
<div class="rounded-md border">
{#key table.getRowModel().rows}
<Table.Root>
<Table.Header>
{#each table.getHeaderGroups() as headerGroup (headerGroup.id)}
<Table.Row>
{#each headerGroup.headers as header (header.id)}
<Table.Head>
{#if !header.isPlaceholder}
<div class="flex items-center">
<Button
variant="ghost"
size="sm"
class="-ml-3 h-8 data-[sortable=false]:cursor-default"
data-sortable={header.column.getCanSort()}
onclick={() => header.column.toggleSorting()}
>
<FlexRender
content={header.column.columnDef.header}
context={header.getContext()}
/>
{#if header.column.getCanSort()}
{#if header.column.getIsSorted() === 'asc'}
<ArrowDown />
{:else if header.column.getIsSorted() === 'desc'}
<ArrowUp />
{/if}
{/if}
</Button>
</div>
{/if}
</Table.Head>
{/each}
</Table.Row>
{/each}
</Table.Header>
<Table.Body>
{#each table.getRowModel().rows as row (row.id)}
<Table.Row
data-state={row.getIsSelected() && 'selected'}
class={computeRowClasses(row.original)}
>
{#each row.getVisibleCells() as cell (cell.id)}
<Table.Cell>
<FlexRender content={cell.column.columnDef.cell} context={cell.getContext()} />
</Table.Cell>
{/each}
</Table.Row>
{:else}
<Table.Row>
<Table.Cell colspan={columns.length} class="h-24 text-center"
>No results.</Table.Cell
>
</Table.Row>
{/each}
</Table.Body>
<Table.Footer>
<Table.Row class="border-t">
<Table.Cell colspan={columns.length}>Total</Table.Cell>
<Table.Cell class="mr-4 text-right">
{table.getPaginationRowModel().rows.length}
</Table.Cell>
</Table.Row>
</Table.Footer>
</Table.Root>
{/key}
</div>
{:else}
<!-- Grid View -->
<div
class="grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"
>
{#each table.getRowModel().rows as row (row.id)}
{@const isSelected = row.getIsSelected()}
{@const titleCell = cardConfig.titleKey
? row.getVisibleCells().find((c) => c.column.id === cardConfig.titleKey)
: null}
{@const subtitleCell = cardConfig.subtitleKey
? row.getVisibleCells().find((c) => c.column.id === cardConfig.subtitleKey)
: null}
{@const actionsCell = row.getVisibleCells().find((c) => c.column.id === 'actions')}
{@const visibleColumns = getVisibleColumns()}
<!-- svelte-ignore a11y_click_events_have_key_events -->
<!-- svelte-ignore a11y_no_static_element_interactions -->
<div
class="group bg-card text-card-foreground hover:shadow-primary/5 relative overflow-hidden rounded-xl border shadow-sm transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md {computeRowClasses(
row.original
)} {isSelected
? 'ring-primary bg-primary/5 border-primary/20 ring-2'
: 'hover:border-primary/20'}"
onclick={() => row.toggleSelected()}
ontouchstart={(e) => {
let touchTimer;
touchTimer = setTimeout(() => {
// Long press action - could show context menu
if (actionsCell) {
e.preventDefault();
// You could dispatch a custom event here for showing actions menu
}
}, 500);
// Clear timer on touch end
const clearTimer = () => {
clearTimeout(touchTimer);
document.removeEventListener('touchend', clearTimer);
document.removeEventListener('touchmove', clearTimer);
};
document.addEventListener('touchend', clearTimer);
document.addEventListener('touchmove', clearTimer);
}}
>
{#if isSelected}
<Check class="absolute bottom-3 left-3 z-10 text-green-500 " />
{/if}
<div class="space-y-3 p-4">
<!-- Header Section -->
<div class="flex items-center justify-between space-y-2">
{#if titleCell && cardConfig.titleKey}
{@const titleColumn = table.getColumn(cardConfig.titleKey)}
<h3 class="line-clamp-2 pr-8 text-base leading-tight font-semibold">
<FlexRender
content={titleColumn?.columnDef.cell}
context={titleCell.getContext()}
/>
</h3>
{/if}
{#if subtitleCell && cardConfig.subtitleKey}
{@const subtitleColumn = table.getColumn(cardConfig.subtitleKey)}
<div class="text-muted-foreground text-sm">
<FlexRender
content={subtitleColumn?.columnDef.cell}
context={subtitleCell.getContext()}
/>
</div>
{/if}
</div>
<!-- Content Section - Show only most important fields -->
{#if visibleColumns.length > 0}
<div class="space-y-2.5 border-t pt-3">
{#each visibleColumns as column (column.id)}
{@const cell = row.getVisibleCells().find((c) => c.column.id === column.id)}
{#if cell && column.id !== cardConfig.titleKey && column.id !== cardConfig.subtitleKey}
<div class="flex items-center justify-between gap-2 text-xs">
<span
class="text-muted-foreground min-w-0 truncate font-medium tracking-wide uppercase"
<!-- Table -->
<div class="rounded-md border">
{#key table.getRowModel().rows}
<Table.Root>
<Table.Header>
{#each table.getHeaderGroups() as headerGroup (headerGroup.id)}
<Table.Row>
{#each headerGroup.headers as header (header.id)}
<Table.Head>
{#if !header.isPlaceholder}
<div class="flex items-center">
<Button
variant="ghost"
size="sm"
class="-ml-3 h-8 data-[sortable=false]:cursor-default"
data-sortable={header.column.getCanSort()}
onclick={() => header.column.toggleSorting()}
>
{column.columnDef.header}
</span>
<div class="min-w-0 flex-1 text-right">
<FlexRender
content={cell.column.columnDef.cell}
context={cell.getContext()}
content={header.column.columnDef.header}
context={header.getContext()}
/>
</div>
{#if header.column.getCanSort()}
{#if header.column.getIsSorted() === 'asc'}
<ArrowDown />
{:else if header.column.getIsSorted() === 'desc'}
<ArrowUp />
{/if}
{/if}
</Button>
</div>
{/if}
{/each}
</div>
{/if}
<!-- Actions Section -->
{#if actionsCell}
<div
class="flex justify-end border-t pt-3 opacity-0 transition-opacity duration-200 group-hover:opacity-100 sm:opacity-100"
>
<div class="flex gap-1">
<FlexRender
content={actionsCell.column.columnDef.cell}
context={actionsCell.getContext()}
/>
</div>
</div>
{/if}
</div>
<!-- Hover Overlay -->
<div
class="from-primary/5 pointer-events-none absolute inset-0 bg-gradient-to-t to-transparent opacity-0 transition-opacity duration-200 group-hover:opacity-100"
></div>
</div>
{:else}
<div class="col-span-full flex h-32 items-center justify-center">
<div class="text-center space-y-2">
<div class="text-muted-foreground text-4xl">📋</div>
<p class="text-muted-foreground font-medium">No results found</p>
<p class="text-muted-foreground text-sm">Try adjusting your search or filters</p>
</div>
</div>
{/each}
</div>
{/if}
</Table.Head>
{/each}
</Table.Row>
{/each}
</Table.Header>
<Table.Body>
{#each table.getRowModel().rows as row (row.id)}
<Table.Row
data-state={row.getIsSelected() && 'selected'}
class={computeRowClasses(row.original)}
>
{#each row.getVisibleCells() as cell (cell.id)}
<Table.Cell>
<FlexRender content={cell.column.columnDef.cell} context={cell.getContext()} />
</Table.Cell>
{/each}
</Table.Row>
{:else}
<Table.Row>
<Table.Cell colspan={columns.length} class="h-24 text-center">No results.</Table.Cell>
</Table.Row>
{/each}
</Table.Body>
<Table.Footer>
<Table.Row class="border-t">
<Table.Cell colspan={columns.length}>Total</Table.Cell>
<Table.Cell class="mr-4 text-right">
{table.getPaginationRowModel().rows.length}
</Table.Cell>
</Table.Row>
</Table.Footer>
</Table.Root>
{/key}
</div>
{#if table.getSelectedRowModel().rows.length > 0 && bulkActions && bulkActions.length > 0}
<BulkActions

File diff suppressed because one or more lines are too long

View File

@@ -2,415 +2,428 @@
// @generated from file mantrae/v1/agent.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/agent.proto.
*/
export const file_mantrae_v1_agent: GenFile = /*@__PURE__*/
fileDesc("ChZtYW50cmFlL3YxL2FnZW50LnByb3RvEgptYW50cmFlLnYxIo0CCgVBZ2VudBIKCgJpZBgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgDEhAKCGhvc3RuYW1lGAMgASgJEhEKCXB1YmxpY19pcBgEIAEoCRISCgpwcml2YXRlX2lwGAUgASgJEhEKCWFjdGl2ZV9pcBgGIAEoCRINCgV0b2tlbhgHIAEoCRIpCgpjb250YWluZXJzGAggAygLMhUubWFudHJhZS52MS5Db250YWluZXISLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiuAIKCUNvbnRhaW5lchIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEjEKBmxhYmVscxgDIAMoCzIhLm1hbnRyYWUudjEuQ29udGFpbmVyLkxhYmVsc0VudHJ5Eg0KBWltYWdlGAQgASgJEjMKB3BvcnRtYXAYBSADKAsyIi5tYW50cmFlLnYxLkNvbnRhaW5lci5Qb3J0bWFwRW50cnkSDgoGc3RhdHVzGAYgASgJEisKB2NyZWF0ZWQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaLgoMUG9ydG1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiJgoPR2V0QWdlbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIjQKEEdldEFnZW50UmVzcG9uc2USIAoFYWdlbnQYASABKAsyES5tYW50cmFlLnYxLkFnZW50IjEKEkNyZWF0ZUFnZW50UmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAIjcKE0NyZWF0ZUFnZW50UmVzcG9uc2USIAoFYWdlbnQYASABKAsyES5tYW50cmFlLnYxLkFnZW50InkKElVwZGF0ZUFnZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIbCgJpcBgCIAEoCUIKukgH2AEAcgJwAUgAiAEBEhkKDHJvdGF0ZV90b2tlbhgDIAEoCEgBiAEBQgUKA19pcEIPCg1fcm90YXRlX3Rva2VuIjcKE1VwZGF0ZUFnZW50UmVzcG9uc2USIAoFYWdlbnQYASABKAsyES5tYW50cmFlLnYxLkFnZW50IikKEkRlbGV0ZUFnZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIVChNEZWxldGVBZ2VudFJlc3BvbnNlIs8BChFMaXN0QWdlbnRzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEmoKBWxpbWl0GAIgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgDIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IkwKEkxpc3RBZ2VudHNSZXNwb25zZRIhCgZhZ2VudHMYASADKAsyES5tYW50cmFlLnYxLkFnZW50EhMKC3RvdGFsX2NvdW50GAIgASgDImgKEkhlYWx0aENoZWNrUmVxdWVzdBIZCghob3N0bmFtZRgDIAEoCUIHukgEcgIQARIaCglwdWJsaWNfaXAYBCABKAlCB7pIBHICEAESGwoKcHJpdmF0ZV9pcBgFIAEoCUIHukgEcgIQASI3ChNIZWFsdGhDaGVja1Jlc3BvbnNlEiAKBWFnZW50GAEgASgLMhEubWFudHJhZS52MS5BZ2VudDLsAwoMQWdlbnRTZXJ2aWNlEkoKCEdldEFnZW50EhsubWFudHJhZS52MS5HZXRBZ2VudFJlcXVlc3QaHC5tYW50cmFlLnYxLkdldEFnZW50UmVzcG9uc2UiA5ACARJOCgtDcmVhdGVBZ2VudBIeLm1hbnRyYWUudjEuQ3JlYXRlQWdlbnRSZXF1ZXN0Gh8ubWFudHJhZS52MS5DcmVhdGVBZ2VudFJlc3BvbnNlEk4KC1VwZGF0ZUFnZW50Eh4ubWFudHJhZS52MS5VcGRhdGVBZ2VudFJlcXVlc3QaHy5tYW50cmFlLnYxLlVwZGF0ZUFnZW50UmVzcG9uc2USTgoLRGVsZXRlQWdlbnQSHi5tYW50cmFlLnYxLkRlbGV0ZUFnZW50UmVxdWVzdBofLm1hbnRyYWUudjEuRGVsZXRlQWdlbnRSZXNwb25zZRJQCgpMaXN0QWdlbnRzEh0ubWFudHJhZS52MS5MaXN0QWdlbnRzUmVxdWVzdBoeLm1hbnRyYWUudjEuTGlzdEFnZW50c1Jlc3BvbnNlIgOQAgESTgoLSGVhbHRoQ2hlY2sSHi5tYW50cmFlLnYxLkhlYWx0aENoZWNrUmVxdWVzdBofLm1hbnRyYWUudjEuSGVhbHRoQ2hlY2tSZXNwb25zZUKkAQoOY29tLm1hbnRyYWUudjFCCkFnZW50UHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_agent: GenFile =
/*@__PURE__*/
fileDesc(
'ChZtYW50cmFlL3YxL2FnZW50LnByb3RvEgptYW50cmFlLnYxIo0CCgVBZ2VudBIKCgJpZBgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgDEhAKCGhvc3RuYW1lGAMgASgJEhEKCXB1YmxpY19pcBgEIAEoCRISCgpwcml2YXRlX2lwGAUgASgJEhEKCWFjdGl2ZV9pcBgGIAEoCRINCgV0b2tlbhgHIAEoCRIpCgpjb250YWluZXJzGAggAygLMhUubWFudHJhZS52MS5Db250YWluZXISLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiuAIKCUNvbnRhaW5lchIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEjEKBmxhYmVscxgDIAMoCzIhLm1hbnRyYWUudjEuQ29udGFpbmVyLkxhYmVsc0VudHJ5Eg0KBWltYWdlGAQgASgJEjMKB3BvcnRtYXAYBSADKAsyIi5tYW50cmFlLnYxLkNvbnRhaW5lci5Qb3J0bWFwRW50cnkSDgoGc3RhdHVzGAYgASgJEisKB2NyZWF0ZWQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaLgoMUG9ydG1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiJgoPR2V0QWdlbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIjQKEEdldEFnZW50UmVzcG9uc2USIAoFYWdlbnQYASABKAsyES5tYW50cmFlLnYxLkFnZW50IjEKEkNyZWF0ZUFnZW50UmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAIjcKE0NyZWF0ZUFnZW50UmVzcG9uc2USIAoFYWdlbnQYASABKAsyES5tYW50cmFlLnYxLkFnZW50InkKElVwZGF0ZUFnZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIbCgJpcBgCIAEoCUIKukgH2AEAcgJwAUgAiAEBEhkKDHJvdGF0ZV90b2tlbhgDIAEoCEgBiAEBQgUKA19pcEIPCg1fcm90YXRlX3Rva2VuIjcKE1VwZGF0ZUFnZW50UmVzcG9uc2USIAoFYWdlbnQYASABKAsyES5tYW50cmFlLnYxLkFnZW50IikKEkRlbGV0ZUFnZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIVChNEZWxldGVBZ2VudFJlc3BvbnNlIs8BChFMaXN0QWdlbnRzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEmoKBWxpbWl0GAIgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgDIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IkwKEkxpc3RBZ2VudHNSZXNwb25zZRIhCgZhZ2VudHMYASADKAsyES5tYW50cmFlLnYxLkFnZW50EhMKC3RvdGFsX2NvdW50GAIgASgDImgKEkhlYWx0aENoZWNrUmVxdWVzdBIZCghob3N0bmFtZRgDIAEoCUIHukgEcgIQARIaCglwdWJsaWNfaXAYBCABKAlCB7pIBHICEAESGwoKcHJpdmF0ZV9pcBgFIAEoCUIHukgEcgIQASI3ChNIZWFsdGhDaGVja1Jlc3BvbnNlEiAKBWFnZW50GAEgASgLMhEubWFudHJhZS52MS5BZ2VudDLsAwoMQWdlbnRTZXJ2aWNlEkoKCEdldEFnZW50EhsubWFudHJhZS52MS5HZXRBZ2VudFJlcXVlc3QaHC5tYW50cmFlLnYxLkdldEFnZW50UmVzcG9uc2UiA5ACARJOCgtDcmVhdGVBZ2VudBIeLm1hbnRyYWUudjEuQ3JlYXRlQWdlbnRSZXF1ZXN0Gh8ubWFudHJhZS52MS5DcmVhdGVBZ2VudFJlc3BvbnNlEk4KC1VwZGF0ZUFnZW50Eh4ubWFudHJhZS52MS5VcGRhdGVBZ2VudFJlcXVlc3QaHy5tYW50cmFlLnYxLlVwZGF0ZUFnZW50UmVzcG9uc2USTgoLRGVsZXRlQWdlbnQSHi5tYW50cmFlLnYxLkRlbGV0ZUFnZW50UmVxdWVzdBofLm1hbnRyYWUudjEuRGVsZXRlQWdlbnRSZXNwb25zZRJQCgpMaXN0QWdlbnRzEh0ubWFudHJhZS52MS5MaXN0QWdlbnRzUmVxdWVzdBoeLm1hbnRyYWUudjEuTGlzdEFnZW50c1Jlc3BvbnNlIgOQAgESTgoLSGVhbHRoQ2hlY2sSHi5tYW50cmFlLnYxLkhlYWx0aENoZWNrUmVxdWVzdBofLm1hbnRyYWUudjEuSGVhbHRoQ2hlY2tSZXNwb25zZUKkAQoOY29tLm1hbnRyYWUudjFCCkFnZW50UHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.Agent
*/
export type Agent = Message<"mantrae.v1.Agent"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type Agent = Message<'mantrae.v1.Agent'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string hostname = 3;
*/
hostname: string;
/**
* @generated from field: string hostname = 3;
*/
hostname: string;
/**
* @generated from field: string public_ip = 4;
*/
publicIp: string;
/**
* @generated from field: string public_ip = 4;
*/
publicIp: string;
/**
* @generated from field: string private_ip = 5;
*/
privateIp: string;
/**
* @generated from field: string private_ip = 5;
*/
privateIp: string;
/**
* @generated from field: string active_ip = 6;
*/
activeIp: string;
/**
* @generated from field: string active_ip = 6;
*/
activeIp: string;
/**
* @generated from field: string token = 7;
*/
token: string;
/**
* @generated from field: string token = 7;
*/
token: string;
/**
* @generated from field: repeated mantrae.v1.Container containers = 8;
*/
containers: Container[];
/**
* @generated from field: repeated mantrae.v1.Container containers = 8;
*/
containers: Container[];
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Agent.
* Use `create(AgentSchema)` to create a new message.
*/
export const AgentSchema: GenMessage<Agent> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 0);
export const AgentSchema: GenMessage<Agent> = /*@__PURE__*/ messageDesc(file_mantrae_v1_agent, 0);
/**
* @generated from message mantrae.v1.Container
*/
export type Container = Message<"mantrae.v1.Container"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type Container = Message<'mantrae.v1.Container'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: map<string, string> labels = 3;
*/
labels: { [key: string]: string };
/**
* @generated from field: map<string, string> labels = 3;
*/
labels: { [key: string]: string };
/**
* @generated from field: string image = 4;
*/
image: string;
/**
* @generated from field: string image = 4;
*/
image: string;
/**
* @generated from field: map<int32, int32> portmap = 5;
*/
portmap: { [key: number]: number };
/**
* @generated from field: map<int32, int32> portmap = 5;
*/
portmap: { [key: number]: number };
/**
* @generated from field: string status = 6;
*/
status: string;
/**
* @generated from field: string status = 6;
*/
status: string;
/**
* @generated from field: google.protobuf.Timestamp created = 7;
*/
created?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created = 7;
*/
created?: Timestamp;
};
/**
* Describes the message mantrae.v1.Container.
* Use `create(ContainerSchema)` to create a new message.
*/
export const ContainerSchema: GenMessage<Container> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 1);
export const ContainerSchema: GenMessage<Container> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 1);
/**
* @generated from message mantrae.v1.GetAgentRequest
*/
export type GetAgentRequest = Message<"mantrae.v1.GetAgentRequest"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type GetAgentRequest = Message<'mantrae.v1.GetAgentRequest'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
};
/**
* Describes the message mantrae.v1.GetAgentRequest.
* Use `create(GetAgentRequestSchema)` to create a new message.
*/
export const GetAgentRequestSchema: GenMessage<GetAgentRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 2);
export const GetAgentRequestSchema: GenMessage<GetAgentRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 2);
/**
* @generated from message mantrae.v1.GetAgentResponse
*/
export type GetAgentResponse = Message<"mantrae.v1.GetAgentResponse"> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
export type GetAgentResponse = Message<'mantrae.v1.GetAgentResponse'> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
};
/**
* Describes the message mantrae.v1.GetAgentResponse.
* Use `create(GetAgentResponseSchema)` to create a new message.
*/
export const GetAgentResponseSchema: GenMessage<GetAgentResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 3);
export const GetAgentResponseSchema: GenMessage<GetAgentResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 3);
/**
* @generated from message mantrae.v1.CreateAgentRequest
*/
export type CreateAgentRequest = Message<"mantrae.v1.CreateAgentRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type CreateAgentRequest = Message<'mantrae.v1.CreateAgentRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
};
/**
* Describes the message mantrae.v1.CreateAgentRequest.
* Use `create(CreateAgentRequestSchema)` to create a new message.
*/
export const CreateAgentRequestSchema: GenMessage<CreateAgentRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 4);
export const CreateAgentRequestSchema: GenMessage<CreateAgentRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 4);
/**
* @generated from message mantrae.v1.CreateAgentResponse
*/
export type CreateAgentResponse = Message<"mantrae.v1.CreateAgentResponse"> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
export type CreateAgentResponse = Message<'mantrae.v1.CreateAgentResponse'> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
};
/**
* Describes the message mantrae.v1.CreateAgentResponse.
* Use `create(CreateAgentResponseSchema)` to create a new message.
*/
export const CreateAgentResponseSchema: GenMessage<CreateAgentResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 5);
export const CreateAgentResponseSchema: GenMessage<CreateAgentResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 5);
/**
* @generated from message mantrae.v1.UpdateAgentRequest
*/
export type UpdateAgentRequest = Message<"mantrae.v1.UpdateAgentRequest"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type UpdateAgentRequest = Message<'mantrae.v1.UpdateAgentRequest'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: optional string ip = 2;
*/
ip?: string;
/**
* @generated from field: optional string ip = 2;
*/
ip?: string;
/**
* @generated from field: optional bool rotate_token = 3;
*/
rotateToken?: boolean;
/**
* @generated from field: optional bool rotate_token = 3;
*/
rotateToken?: boolean;
};
/**
* Describes the message mantrae.v1.UpdateAgentRequest.
* Use `create(UpdateAgentRequestSchema)` to create a new message.
*/
export const UpdateAgentRequestSchema: GenMessage<UpdateAgentRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 6);
export const UpdateAgentRequestSchema: GenMessage<UpdateAgentRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 6);
/**
* @generated from message mantrae.v1.UpdateAgentResponse
*/
export type UpdateAgentResponse = Message<"mantrae.v1.UpdateAgentResponse"> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
export type UpdateAgentResponse = Message<'mantrae.v1.UpdateAgentResponse'> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
};
/**
* Describes the message mantrae.v1.UpdateAgentResponse.
* Use `create(UpdateAgentResponseSchema)` to create a new message.
*/
export const UpdateAgentResponseSchema: GenMessage<UpdateAgentResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 7);
export const UpdateAgentResponseSchema: GenMessage<UpdateAgentResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 7);
/**
* @generated from message mantrae.v1.DeleteAgentRequest
*/
export type DeleteAgentRequest = Message<"mantrae.v1.DeleteAgentRequest"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type DeleteAgentRequest = Message<'mantrae.v1.DeleteAgentRequest'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
};
/**
* Describes the message mantrae.v1.DeleteAgentRequest.
* Use `create(DeleteAgentRequestSchema)` to create a new message.
*/
export const DeleteAgentRequestSchema: GenMessage<DeleteAgentRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 8);
export const DeleteAgentRequestSchema: GenMessage<DeleteAgentRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 8);
/**
* @generated from message mantrae.v1.DeleteAgentResponse
*/
export type DeleteAgentResponse = Message<"mantrae.v1.DeleteAgentResponse"> & {
};
export type DeleteAgentResponse = Message<'mantrae.v1.DeleteAgentResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteAgentResponse.
* Use `create(DeleteAgentResponseSchema)` to create a new message.
*/
export const DeleteAgentResponseSchema: GenMessage<DeleteAgentResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 9);
export const DeleteAgentResponseSchema: GenMessage<DeleteAgentResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 9);
/**
* @generated from message mantrae.v1.ListAgentsRequest
*/
export type ListAgentsRequest = Message<"mantrae.v1.ListAgentsRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListAgentsRequest = Message<'mantrae.v1.ListAgentsRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional int64 limit = 2;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 2;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 3;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 3;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListAgentsRequest.
* Use `create(ListAgentsRequestSchema)` to create a new message.
*/
export const ListAgentsRequestSchema: GenMessage<ListAgentsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 10);
export const ListAgentsRequestSchema: GenMessage<ListAgentsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 10);
/**
* @generated from message mantrae.v1.ListAgentsResponse
*/
export type ListAgentsResponse = Message<"mantrae.v1.ListAgentsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Agent agents = 1;
*/
agents: Agent[];
export type ListAgentsResponse = Message<'mantrae.v1.ListAgentsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Agent agents = 1;
*/
agents: Agent[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListAgentsResponse.
* Use `create(ListAgentsResponseSchema)` to create a new message.
*/
export const ListAgentsResponseSchema: GenMessage<ListAgentsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 11);
export const ListAgentsResponseSchema: GenMessage<ListAgentsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 11);
/**
* @generated from message mantrae.v1.HealthCheckRequest
*/
export type HealthCheckRequest = Message<"mantrae.v1.HealthCheckRequest"> & {
/**
* @generated from field: string hostname = 3;
*/
hostname: string;
export type HealthCheckRequest = Message<'mantrae.v1.HealthCheckRequest'> & {
/**
* @generated from field: string hostname = 3;
*/
hostname: string;
/**
* @generated from field: string public_ip = 4;
*/
publicIp: string;
/**
* @generated from field: string public_ip = 4;
*/
publicIp: string;
/**
* @generated from field: string private_ip = 5;
*/
privateIp: string;
/**
* @generated from field: string private_ip = 5;
*/
privateIp: string;
};
/**
* Describes the message mantrae.v1.HealthCheckRequest.
* Use `create(HealthCheckRequestSchema)` to create a new message.
*/
export const HealthCheckRequestSchema: GenMessage<HealthCheckRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 12);
export const HealthCheckRequestSchema: GenMessage<HealthCheckRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 12);
/**
* @generated from message mantrae.v1.HealthCheckResponse
*/
export type HealthCheckResponse = Message<"mantrae.v1.HealthCheckResponse"> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
export type HealthCheckResponse = Message<'mantrae.v1.HealthCheckResponse'> & {
/**
* @generated from field: mantrae.v1.Agent agent = 1;
*/
agent?: Agent;
};
/**
* Describes the message mantrae.v1.HealthCheckResponse.
* Use `create(HealthCheckResponseSchema)` to create a new message.
*/
export const HealthCheckResponseSchema: GenMessage<HealthCheckResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 13);
export const HealthCheckResponseSchema: GenMessage<HealthCheckResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_agent, 13);
/**
* @generated from service mantrae.v1.AgentService
*/
export const AgentService: GenService<{
/**
* @generated from rpc mantrae.v1.AgentService.GetAgent
*/
getAgent: {
methodKind: "unary";
input: typeof GetAgentRequestSchema;
output: typeof GetAgentResponseSchema;
},
/**
* @generated from rpc mantrae.v1.AgentService.CreateAgent
*/
createAgent: {
methodKind: "unary";
input: typeof CreateAgentRequestSchema;
output: typeof CreateAgentResponseSchema;
},
/**
* @generated from rpc mantrae.v1.AgentService.UpdateAgent
*/
updateAgent: {
methodKind: "unary";
input: typeof UpdateAgentRequestSchema;
output: typeof UpdateAgentResponseSchema;
},
/**
* @generated from rpc mantrae.v1.AgentService.DeleteAgent
*/
deleteAgent: {
methodKind: "unary";
input: typeof DeleteAgentRequestSchema;
output: typeof DeleteAgentResponseSchema;
},
/**
* @generated from rpc mantrae.v1.AgentService.ListAgents
*/
listAgents: {
methodKind: "unary";
input: typeof ListAgentsRequestSchema;
output: typeof ListAgentsResponseSchema;
},
/**
* @generated from rpc mantrae.v1.AgentService.HealthCheck
*/
healthCheck: {
methodKind: "unary";
input: typeof HealthCheckRequestSchema;
output: typeof HealthCheckResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_agent, 0);
/**
* @generated from rpc mantrae.v1.AgentService.GetAgent
*/
getAgent: {
methodKind: 'unary';
input: typeof GetAgentRequestSchema;
output: typeof GetAgentResponseSchema;
};
/**
* @generated from rpc mantrae.v1.AgentService.CreateAgent
*/
createAgent: {
methodKind: 'unary';
input: typeof CreateAgentRequestSchema;
output: typeof CreateAgentResponseSchema;
};
/**
* @generated from rpc mantrae.v1.AgentService.UpdateAgent
*/
updateAgent: {
methodKind: 'unary';
input: typeof UpdateAgentRequestSchema;
output: typeof UpdateAgentResponseSchema;
};
/**
* @generated from rpc mantrae.v1.AgentService.DeleteAgent
*/
deleteAgent: {
methodKind: 'unary';
input: typeof DeleteAgentRequestSchema;
output: typeof DeleteAgentResponseSchema;
};
/**
* @generated from rpc mantrae.v1.AgentService.ListAgents
*/
listAgents: {
methodKind: 'unary';
input: typeof ListAgentsRequestSchema;
output: typeof ListAgentsResponseSchema;
};
/**
* @generated from rpc mantrae.v1.AgentService.HealthCheck
*/
healthCheck: {
methodKind: 'unary';
input: typeof HealthCheckRequestSchema;
output: typeof HealthCheckResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_agent, 0);

View File

@@ -2,137 +2,142 @@
// @generated from file mantrae/v1/auditlog.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/auditlog.proto.
*/
export const file_mantrae_v1_auditlog: GenFile = /*@__PURE__*/
fileDesc("ChltYW50cmFlL3YxL2F1ZGl0bG9nLnByb3RvEgptYW50cmFlLnYxItoBCghBdWRpdExvZxIKCgJpZBgBIAEoAxISCgpwcm9maWxlX2lkGAIgASgDEhQKDHByb2ZpbGVfbmFtZRgDIAEoCRIPCgd1c2VyX2lkGAQgASgJEhEKCXVzZXJfbmFtZRgFIAEoCRIQCghhZ2VudF9pZBgGIAEoCRISCgphZ2VudF9uYW1lGAcgASgJEg0KBWV2ZW50GAggASgJEg8KB2RldGFpbHMYCSABKAkSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAitQEKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EmoKBWxpbWl0GAEgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgCIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IlYKFUxpc3RBdWRpdExvZ3NSZXNwb25zZRIoCgphdWRpdF9sb2dzGAEgAygLMhQubWFudHJhZS52MS5BdWRpdExvZxITCgt0b3RhbF9jb3VudBgCIAEoAzJsCg9BdWRpdExvZ1NlcnZpY2USWQoNTGlzdEF1ZGl0TG9ncxIgLm1hbnRyYWUudjEuTGlzdEF1ZGl0TG9nc1JlcXVlc3QaIS5tYW50cmFlLnYxLkxpc3RBdWRpdExvZ3NSZXNwb25zZSIDkAIBQqcBCg5jb20ubWFudHJhZS52MUINQXVkaXRsb2dQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_auditlog: GenFile =
/*@__PURE__*/
fileDesc(
'ChltYW50cmFlL3YxL2F1ZGl0bG9nLnByb3RvEgptYW50cmFlLnYxItoBCghBdWRpdExvZxIKCgJpZBgBIAEoAxISCgpwcm9maWxlX2lkGAIgASgDEhQKDHByb2ZpbGVfbmFtZRgDIAEoCRIPCgd1c2VyX2lkGAQgASgJEhEKCXVzZXJfbmFtZRgFIAEoCRIQCghhZ2VudF9pZBgGIAEoCRISCgphZ2VudF9uYW1lGAcgASgJEg0KBWV2ZW50GAggASgJEg8KB2RldGFpbHMYCSABKAkSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAitQEKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EmoKBWxpbWl0GAEgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgCIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IlYKFUxpc3RBdWRpdExvZ3NSZXNwb25zZRIoCgphdWRpdF9sb2dzGAEgAygLMhQubWFudHJhZS52MS5BdWRpdExvZxITCgt0b3RhbF9jb3VudBgCIAEoAzJsCg9BdWRpdExvZ1NlcnZpY2USWQoNTGlzdEF1ZGl0TG9ncxIgLm1hbnRyYWUudjEuTGlzdEF1ZGl0TG9nc1JlcXVlc3QaIS5tYW50cmFlLnYxLkxpc3RBdWRpdExvZ3NSZXNwb25zZSIDkAIBQqcBCg5jb20ubWFudHJhZS52MUINQXVkaXRsb2dQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.AuditLog
*/
export type AuditLog = Message<"mantrae.v1.AuditLog"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type AuditLog = Message<'mantrae.v1.AuditLog'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string profile_name = 3;
*/
profileName: string;
/**
* @generated from field: string profile_name = 3;
*/
profileName: string;
/**
* @generated from field: string user_id = 4;
*/
userId: string;
/**
* @generated from field: string user_id = 4;
*/
userId: string;
/**
* @generated from field: string user_name = 5;
*/
userName: string;
/**
* @generated from field: string user_name = 5;
*/
userName: string;
/**
* @generated from field: string agent_id = 6;
*/
agentId: string;
/**
* @generated from field: string agent_id = 6;
*/
agentId: string;
/**
* @generated from field: string agent_name = 7;
*/
agentName: string;
/**
* @generated from field: string agent_name = 7;
*/
agentName: string;
/**
* @generated from field: string event = 8;
*/
event: string;
/**
* @generated from field: string event = 8;
*/
event: string;
/**
* @generated from field: string details = 9;
*/
details: string;
/**
* @generated from field: string details = 9;
*/
details: string;
/**
* @generated from field: google.protobuf.Timestamp created_at = 10;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 10;
*/
createdAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.AuditLog.
* Use `create(AuditLogSchema)` to create a new message.
*/
export const AuditLogSchema: GenMessage<AuditLog> = /*@__PURE__*/
messageDesc(file_mantrae_v1_auditlog, 0);
export const AuditLogSchema: GenMessage<AuditLog> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_auditlog, 0);
/**
* @generated from message mantrae.v1.ListAuditLogsRequest
*/
export type ListAuditLogsRequest = Message<"mantrae.v1.ListAuditLogsRequest"> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
export type ListAuditLogsRequest = Message<'mantrae.v1.ListAuditLogsRequest'> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListAuditLogsRequest.
* Use `create(ListAuditLogsRequestSchema)` to create a new message.
*/
export const ListAuditLogsRequestSchema: GenMessage<ListAuditLogsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_auditlog, 1);
export const ListAuditLogsRequestSchema: GenMessage<ListAuditLogsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_auditlog, 1);
/**
* @generated from message mantrae.v1.ListAuditLogsResponse
*/
export type ListAuditLogsResponse = Message<"mantrae.v1.ListAuditLogsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.AuditLog audit_logs = 1;
*/
auditLogs: AuditLog[];
export type ListAuditLogsResponse = Message<'mantrae.v1.ListAuditLogsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.AuditLog audit_logs = 1;
*/
auditLogs: AuditLog[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListAuditLogsResponse.
* Use `create(ListAuditLogsResponseSchema)` to create a new message.
*/
export const ListAuditLogsResponseSchema: GenMessage<ListAuditLogsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_auditlog, 2);
export const ListAuditLogsResponseSchema: GenMessage<ListAuditLogsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_auditlog, 2);
/**
* @generated from service mantrae.v1.AuditLogService
*/
export const AuditLogService: GenService<{
/**
* @generated from rpc mantrae.v1.AuditLogService.ListAuditLogs
*/
listAuditLogs: {
methodKind: "unary";
input: typeof ListAuditLogsRequestSchema;
output: typeof ListAuditLogsResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_auditlog, 0);
/**
* @generated from rpc mantrae.v1.AuditLogService.ListAuditLogs
*/
listAuditLogs: {
methodKind: 'unary';
input: typeof ListAuditLogsRequestSchema;
output: typeof ListAuditLogsResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_auditlog, 0);

View File

@@ -2,243 +2,251 @@
// @generated from file mantrae/v1/backup.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/backup.proto.
*/
export const file_mantrae_v1_backup: GenFile = /*@__PURE__*/
fileDesc("ChdtYW50cmFlL3YxL2JhY2t1cC5wcm90bxIKbWFudHJhZS52MSJUCgZCYWNrdXASDAoEbmFtZRgBIAEoCRIMCgRzaXplGAIgASgDEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIhUKE0NyZWF0ZUJhY2t1cFJlcXVlc3QiFgoUQ3JlYXRlQmFja3VwUmVzcG9uc2UiLQoUUmVzdG9yZUJhY2t1cFJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQASIXChVSZXN0b3JlQmFja3VwUmVzcG9uc2UiFAoSTGlzdEJhY2t1cHNSZXF1ZXN0IjoKE0xpc3RCYWNrdXBzUmVzcG9uc2USIwoHYmFja3VwcxgBIAMoCzISLm1hbnRyYWUudjEuQmFja3VwIiwKE0RlbGV0ZUJhY2t1cFJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQASIWChREZWxldGVCYWNrdXBSZXNwb25zZSIlChVEb3dubG9hZEJhY2t1cFJlcXVlc3QSDAoEbmFtZRgBIAEoCSImChZEb3dubG9hZEJhY2t1cFJlc3BvbnNlEgwKBGRhdGEYASABKAwyuwMKDUJhY2t1cFNlcnZpY2USUQoMQ3JlYXRlQmFja3VwEh8ubWFudHJhZS52MS5DcmVhdGVCYWNrdXBSZXF1ZXN0GiAubWFudHJhZS52MS5DcmVhdGVCYWNrdXBSZXNwb25zZRJUCg1SZXN0b3JlQmFja3VwEiAubWFudHJhZS52MS5SZXN0b3JlQmFja3VwUmVxdWVzdBohLm1hbnRyYWUudjEuUmVzdG9yZUJhY2t1cFJlc3BvbnNlElMKC0xpc3RCYWNrdXBzEh4ubWFudHJhZS52MS5MaXN0QmFja3Vwc1JlcXVlc3QaHy5tYW50cmFlLnYxLkxpc3RCYWNrdXBzUmVzcG9uc2UiA5ACARJRCgxEZWxldGVCYWNrdXASHy5tYW50cmFlLnYxLkRlbGV0ZUJhY2t1cFJlcXVlc3QaIC5tYW50cmFlLnYxLkRlbGV0ZUJhY2t1cFJlc3BvbnNlElkKDkRvd25sb2FkQmFja3VwEiEubWFudHJhZS52MS5Eb3dubG9hZEJhY2t1cFJlcXVlc3QaIi5tYW50cmFlLnYxLkRvd25sb2FkQmFja3VwUmVzcG9uc2UwAUKlAQoOY29tLm1hbnRyYWUudjFCC0JhY2t1cFByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_backup: GenFile =
/*@__PURE__*/
fileDesc(
'ChdtYW50cmFlL3YxL2JhY2t1cC5wcm90bxIKbWFudHJhZS52MSJUCgZCYWNrdXASDAoEbmFtZRgBIAEoCRIMCgRzaXplGAIgASgDEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIhUKE0NyZWF0ZUJhY2t1cFJlcXVlc3QiFgoUQ3JlYXRlQmFja3VwUmVzcG9uc2UiLQoUUmVzdG9yZUJhY2t1cFJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQASIXChVSZXN0b3JlQmFja3VwUmVzcG9uc2UiFAoSTGlzdEJhY2t1cHNSZXF1ZXN0IjoKE0xpc3RCYWNrdXBzUmVzcG9uc2USIwoHYmFja3VwcxgBIAMoCzISLm1hbnRyYWUudjEuQmFja3VwIiwKE0RlbGV0ZUJhY2t1cFJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQASIWChREZWxldGVCYWNrdXBSZXNwb25zZSIlChVEb3dubG9hZEJhY2t1cFJlcXVlc3QSDAoEbmFtZRgBIAEoCSImChZEb3dubG9hZEJhY2t1cFJlc3BvbnNlEgwKBGRhdGEYASABKAwyuwMKDUJhY2t1cFNlcnZpY2USUQoMQ3JlYXRlQmFja3VwEh8ubWFudHJhZS52MS5DcmVhdGVCYWNrdXBSZXF1ZXN0GiAubWFudHJhZS52MS5DcmVhdGVCYWNrdXBSZXNwb25zZRJUCg1SZXN0b3JlQmFja3VwEiAubWFudHJhZS52MS5SZXN0b3JlQmFja3VwUmVxdWVzdBohLm1hbnRyYWUudjEuUmVzdG9yZUJhY2t1cFJlc3BvbnNlElMKC0xpc3RCYWNrdXBzEh4ubWFudHJhZS52MS5MaXN0QmFja3Vwc1JlcXVlc3QaHy5tYW50cmFlLnYxLkxpc3RCYWNrdXBzUmVzcG9uc2UiA5ACARJRCgxEZWxldGVCYWNrdXASHy5tYW50cmFlLnYxLkRlbGV0ZUJhY2t1cFJlcXVlc3QaIC5tYW50cmFlLnYxLkRlbGV0ZUJhY2t1cFJlc3BvbnNlElkKDkRvd25sb2FkQmFja3VwEiEubWFudHJhZS52MS5Eb3dubG9hZEJhY2t1cFJlcXVlc3QaIi5tYW50cmFlLnYxLkRvd25sb2FkQmFja3VwUmVzcG9uc2UwAUKlAQoOY29tLm1hbnRyYWUudjFCC0JhY2t1cFByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.Backup
*/
export type Backup = Message<"mantrae.v1.Backup"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
export type Backup = Message<'mantrae.v1.Backup'> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: int64 size = 2;
*/
size: bigint;
/**
* @generated from field: int64 size = 2;
*/
size: bigint;
/**
* @generated from field: google.protobuf.Timestamp created_at = 3;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 3;
*/
createdAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Backup.
* Use `create(BackupSchema)` to create a new message.
*/
export const BackupSchema: GenMessage<Backup> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 0);
export const BackupSchema: GenMessage<Backup> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 0);
/**
* @generated from message mantrae.v1.CreateBackupRequest
*/
export type CreateBackupRequest = Message<"mantrae.v1.CreateBackupRequest"> & {
};
export type CreateBackupRequest = Message<'mantrae.v1.CreateBackupRequest'> & {};
/**
* Describes the message mantrae.v1.CreateBackupRequest.
* Use `create(CreateBackupRequestSchema)` to create a new message.
*/
export const CreateBackupRequestSchema: GenMessage<CreateBackupRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 1);
export const CreateBackupRequestSchema: GenMessage<CreateBackupRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 1);
/**
* @generated from message mantrae.v1.CreateBackupResponse
*/
export type CreateBackupResponse = Message<"mantrae.v1.CreateBackupResponse"> & {
};
export type CreateBackupResponse = Message<'mantrae.v1.CreateBackupResponse'> & {};
/**
* Describes the message mantrae.v1.CreateBackupResponse.
* Use `create(CreateBackupResponseSchema)` to create a new message.
*/
export const CreateBackupResponseSchema: GenMessage<CreateBackupResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 2);
export const CreateBackupResponseSchema: GenMessage<CreateBackupResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 2);
/**
* @generated from message mantrae.v1.RestoreBackupRequest
*/
export type RestoreBackupRequest = Message<"mantrae.v1.RestoreBackupRequest"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
export type RestoreBackupRequest = Message<'mantrae.v1.RestoreBackupRequest'> & {
/**
* @generated from field: string name = 1;
*/
name: string;
};
/**
* Describes the message mantrae.v1.RestoreBackupRequest.
* Use `create(RestoreBackupRequestSchema)` to create a new message.
*/
export const RestoreBackupRequestSchema: GenMessage<RestoreBackupRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 3);
export const RestoreBackupRequestSchema: GenMessage<RestoreBackupRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 3);
/**
* @generated from message mantrae.v1.RestoreBackupResponse
*/
export type RestoreBackupResponse = Message<"mantrae.v1.RestoreBackupResponse"> & {
};
export type RestoreBackupResponse = Message<'mantrae.v1.RestoreBackupResponse'> & {};
/**
* Describes the message mantrae.v1.RestoreBackupResponse.
* Use `create(RestoreBackupResponseSchema)` to create a new message.
*/
export const RestoreBackupResponseSchema: GenMessage<RestoreBackupResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 4);
export const RestoreBackupResponseSchema: GenMessage<RestoreBackupResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 4);
/**
* @generated from message mantrae.v1.ListBackupsRequest
*/
export type ListBackupsRequest = Message<"mantrae.v1.ListBackupsRequest"> & {
};
export type ListBackupsRequest = Message<'mantrae.v1.ListBackupsRequest'> & {};
/**
* Describes the message mantrae.v1.ListBackupsRequest.
* Use `create(ListBackupsRequestSchema)` to create a new message.
*/
export const ListBackupsRequestSchema: GenMessage<ListBackupsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 5);
export const ListBackupsRequestSchema: GenMessage<ListBackupsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 5);
/**
* @generated from message mantrae.v1.ListBackupsResponse
*/
export type ListBackupsResponse = Message<"mantrae.v1.ListBackupsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Backup backups = 1;
*/
backups: Backup[];
export type ListBackupsResponse = Message<'mantrae.v1.ListBackupsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Backup backups = 1;
*/
backups: Backup[];
};
/**
* Describes the message mantrae.v1.ListBackupsResponse.
* Use `create(ListBackupsResponseSchema)` to create a new message.
*/
export const ListBackupsResponseSchema: GenMessage<ListBackupsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 6);
export const ListBackupsResponseSchema: GenMessage<ListBackupsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 6);
/**
* @generated from message mantrae.v1.DeleteBackupRequest
*/
export type DeleteBackupRequest = Message<"mantrae.v1.DeleteBackupRequest"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
export type DeleteBackupRequest = Message<'mantrae.v1.DeleteBackupRequest'> & {
/**
* @generated from field: string name = 1;
*/
name: string;
};
/**
* Describes the message mantrae.v1.DeleteBackupRequest.
* Use `create(DeleteBackupRequestSchema)` to create a new message.
*/
export const DeleteBackupRequestSchema: GenMessage<DeleteBackupRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 7);
export const DeleteBackupRequestSchema: GenMessage<DeleteBackupRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 7);
/**
* @generated from message mantrae.v1.DeleteBackupResponse
*/
export type DeleteBackupResponse = Message<"mantrae.v1.DeleteBackupResponse"> & {
};
export type DeleteBackupResponse = Message<'mantrae.v1.DeleteBackupResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteBackupResponse.
* Use `create(DeleteBackupResponseSchema)` to create a new message.
*/
export const DeleteBackupResponseSchema: GenMessage<DeleteBackupResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 8);
export const DeleteBackupResponseSchema: GenMessage<DeleteBackupResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 8);
/**
* @generated from message mantrae.v1.DownloadBackupRequest
*/
export type DownloadBackupRequest = Message<"mantrae.v1.DownloadBackupRequest"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
export type DownloadBackupRequest = Message<'mantrae.v1.DownloadBackupRequest'> & {
/**
* @generated from field: string name = 1;
*/
name: string;
};
/**
* Describes the message mantrae.v1.DownloadBackupRequest.
* Use `create(DownloadBackupRequestSchema)` to create a new message.
*/
export const DownloadBackupRequestSchema: GenMessage<DownloadBackupRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 9);
export const DownloadBackupRequestSchema: GenMessage<DownloadBackupRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 9);
/**
* @generated from message mantrae.v1.DownloadBackupResponse
*/
export type DownloadBackupResponse = Message<"mantrae.v1.DownloadBackupResponse"> & {
/**
* @generated from field: bytes data = 1;
*/
data: Uint8Array;
export type DownloadBackupResponse = Message<'mantrae.v1.DownloadBackupResponse'> & {
/**
* @generated from field: bytes data = 1;
*/
data: Uint8Array;
};
/**
* Describes the message mantrae.v1.DownloadBackupResponse.
* Use `create(DownloadBackupResponseSchema)` to create a new message.
*/
export const DownloadBackupResponseSchema: GenMessage<DownloadBackupResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 10);
export const DownloadBackupResponseSchema: GenMessage<DownloadBackupResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_backup, 10);
/**
* @generated from service mantrae.v1.BackupService
*/
export const BackupService: GenService<{
/**
* @generated from rpc mantrae.v1.BackupService.CreateBackup
*/
createBackup: {
methodKind: "unary";
input: typeof CreateBackupRequestSchema;
output: typeof CreateBackupResponseSchema;
},
/**
* @generated from rpc mantrae.v1.BackupService.RestoreBackup
*/
restoreBackup: {
methodKind: "unary";
input: typeof RestoreBackupRequestSchema;
output: typeof RestoreBackupResponseSchema;
},
/**
* @generated from rpc mantrae.v1.BackupService.ListBackups
*/
listBackups: {
methodKind: "unary";
input: typeof ListBackupsRequestSchema;
output: typeof ListBackupsResponseSchema;
},
/**
* @generated from rpc mantrae.v1.BackupService.DeleteBackup
*/
deleteBackup: {
methodKind: "unary";
input: typeof DeleteBackupRequestSchema;
output: typeof DeleteBackupResponseSchema;
},
/**
* See: https://github.com/connectrpc/connect-es/issues/669
* rpc UploadBackup(stream UploadBackupRequest) returns (UploadBackupResponse); // stream doesn't work with connect-es
*
* @generated from rpc mantrae.v1.BackupService.DownloadBackup
*/
downloadBackup: {
methodKind: "server_streaming";
input: typeof DownloadBackupRequestSchema;
output: typeof DownloadBackupResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_backup, 0);
/**
* @generated from rpc mantrae.v1.BackupService.CreateBackup
*/
createBackup: {
methodKind: 'unary';
input: typeof CreateBackupRequestSchema;
output: typeof CreateBackupResponseSchema;
};
/**
* @generated from rpc mantrae.v1.BackupService.RestoreBackup
*/
restoreBackup: {
methodKind: 'unary';
input: typeof RestoreBackupRequestSchema;
output: typeof RestoreBackupResponseSchema;
};
/**
* @generated from rpc mantrae.v1.BackupService.ListBackups
*/
listBackups: {
methodKind: 'unary';
input: typeof ListBackupsRequestSchema;
output: typeof ListBackupsResponseSchema;
};
/**
* @generated from rpc mantrae.v1.BackupService.DeleteBackup
*/
deleteBackup: {
methodKind: 'unary';
input: typeof DeleteBackupRequestSchema;
output: typeof DeleteBackupResponseSchema;
};
/**
* See: https://github.com/connectrpc/connect-es/issues/669
* rpc UploadBackup(stream UploadBackupRequest) returns (UploadBackupResponse); // stream doesn't work with connect-es
*
* @generated from rpc mantrae.v1.BackupService.DownloadBackup
*/
downloadBackup: {
methodKind: 'server_streaming';
input: typeof DownloadBackupRequestSchema;
output: typeof DownloadBackupResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_backup, 0);

View File

@@ -2,394 +2,408 @@
// @generated from file mantrae/v1/dns_provider.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenEnum, GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { enumDesc, fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/dns_provider.proto.
*/
export const file_mantrae_v1_dns_provider: GenFile = /*@__PURE__*/
fileDesc("Ch1tYW50cmFlL3YxL2Ruc19wcm92aWRlci5wcm90bxIKbWFudHJhZS52MSL1AQoLRG5zUHJvdmlkZXISCgoCaWQYASABKAMSDAoEbmFtZRgCIAEoCRIpCgR0eXBlGAMgASgOMhsubWFudHJhZS52MS5EbnNQcm92aWRlclR5cGUSLQoGY29uZmlnGAQgASgLMh0ubWFudHJhZS52MS5EbnNQcm92aWRlckNvbmZpZxISCgppc19kZWZhdWx0GAUgASgIEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wInoKEURuc1Byb3ZpZGVyQ29uZmlnEg8KB2FwaV9rZXkYASABKAkSDwoHYXBpX3VybBgCIAEoCRIKCgJpcBgDIAEoCRIPCgdwcm94aWVkGAQgASgIEhMKC2F1dG9fdXBkYXRlGAUgASgIEhEKCXpvbmVfdHlwZRgGIAEoCSIvChVHZXREbnNQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKANCCrpIB8gBASICIAAiRwoWR2V0RG5zUHJvdmlkZXJSZXNwb25zZRItCgxkbnNfcHJvdmlkZXIYASABKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyIq8BChhDcmVhdGVEbnNQcm92aWRlclJlcXVlc3QSGAoEbmFtZRgBIAEoCUIKukgHyAEBcgIQARI2CgR0eXBlGAIgASgOMhsubWFudHJhZS52MS5EbnNQcm92aWRlclR5cGVCC7pICMgBAYIBAhABEi0KBmNvbmZpZxgDIAEoCzIdLm1hbnRyYWUudjEuRG5zUHJvdmlkZXJDb25maWcSEgoKaXNfZGVmYXVsdBgEIAEoCCJKChlDcmVhdGVEbnNQcm92aWRlclJlc3BvbnNlEi0KDGRuc19wcm92aWRlchgBIAEoCzIXLm1hbnRyYWUudjEuRG5zUHJvdmlkZXIixwEKGFVwZGF0ZURuc1Byb3ZpZGVyUmVxdWVzdBIWCgJpZBgBIAEoA0IKukgHyAEBIgIgABIYCgRuYW1lGAIgASgJQgq6SAfIAQFyAhABEjYKBHR5cGUYAyABKA4yGy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyVHlwZUILukgIyAEBggECEAESLQoGY29uZmlnGAQgASgLMh0ubWFudHJhZS52MS5EbnNQcm92aWRlckNvbmZpZxISCgppc19kZWZhdWx0GAUgASgIIkoKGVVwZGF0ZURuc1Byb3ZpZGVyUmVzcG9uc2USLQoMZG5zX3Byb3ZpZGVyGAEgASgLMhcubWFudHJhZS52MS5EbnNQcm92aWRlciIyChhEZWxldGVEbnNQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKANCCrpIB8gBASICIAAiGwoZRGVsZXRlRG5zUHJvdmlkZXJSZXNwb25zZSK4AQoXTGlzdERuc1Byb3ZpZGVyc1JlcXVlc3QSagoFbGltaXQYASABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSACIAQESHAoGb2Zmc2V0GAIgASgDQge6SAQiAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQiXwoYTGlzdERuc1Byb3ZpZGVyc1Jlc3BvbnNlEi4KDWRuc19wcm92aWRlcnMYASADKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyEhMKC3RvdGFsX2NvdW50GAIgASgDKpgBCg9EbnNQcm92aWRlclR5cGUSIQodRE5TX1BST1ZJREVSX1RZUEVfVU5TUEVDSUZJRUQQABIgChxETlNfUFJPVklERVJfVFlQRV9DTE9VREZMQVJFEAESHgoaRE5TX1BST1ZJREVSX1RZUEVfUE9XRVJETlMQAhIgChxETlNfUFJPVklERVJfVFlQRV9URUNITklUSVVNEAMy/AMKEkRuc1Byb3ZpZGVyU2VydmljZRJcCg5HZXREbnNQcm92aWRlchIhLm1hbnRyYWUudjEuR2V0RG5zUHJvdmlkZXJSZXF1ZXN0GiIubWFudHJhZS52MS5HZXREbnNQcm92aWRlclJlc3BvbnNlIgOQAgESYAoRQ3JlYXRlRG5zUHJvdmlkZXISJC5tYW50cmFlLnYxLkNyZWF0ZURuc1Byb3ZpZGVyUmVxdWVzdBolLm1hbnRyYWUudjEuQ3JlYXRlRG5zUHJvdmlkZXJSZXNwb25zZRJgChFVcGRhdGVEbnNQcm92aWRlchIkLm1hbnRyYWUudjEuVXBkYXRlRG5zUHJvdmlkZXJSZXF1ZXN0GiUubWFudHJhZS52MS5VcGRhdGVEbnNQcm92aWRlclJlc3BvbnNlEmAKEURlbGV0ZURuc1Byb3ZpZGVyEiQubWFudHJhZS52MS5EZWxldGVEbnNQcm92aWRlclJlcXVlc3QaJS5tYW50cmFlLnYxLkRlbGV0ZURuc1Byb3ZpZGVyUmVzcG9uc2USYgoQTGlzdERuc1Byb3ZpZGVycxIjLm1hbnRyYWUudjEuTGlzdERuc1Byb3ZpZGVyc1JlcXVlc3QaJC5tYW50cmFlLnYxLkxpc3REbnNQcm92aWRlcnNSZXNwb25zZSIDkAIBQqoBCg5jb20ubWFudHJhZS52MUIQRG5zUHJvdmlkZXJQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_dns_provider: GenFile =
/*@__PURE__*/
fileDesc(
'Ch1tYW50cmFlL3YxL2Ruc19wcm92aWRlci5wcm90bxIKbWFudHJhZS52MSL1AQoLRG5zUHJvdmlkZXISCgoCaWQYASABKAMSDAoEbmFtZRgCIAEoCRIpCgR0eXBlGAMgASgOMhsubWFudHJhZS52MS5EbnNQcm92aWRlclR5cGUSLQoGY29uZmlnGAQgASgLMh0ubWFudHJhZS52MS5EbnNQcm92aWRlckNvbmZpZxISCgppc19kZWZhdWx0GAUgASgIEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wInoKEURuc1Byb3ZpZGVyQ29uZmlnEg8KB2FwaV9rZXkYASABKAkSDwoHYXBpX3VybBgCIAEoCRIKCgJpcBgDIAEoCRIPCgdwcm94aWVkGAQgASgIEhMKC2F1dG9fdXBkYXRlGAUgASgIEhEKCXpvbmVfdHlwZRgGIAEoCSIvChVHZXREbnNQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKANCCrpIB8gBASICIAAiRwoWR2V0RG5zUHJvdmlkZXJSZXNwb25zZRItCgxkbnNfcHJvdmlkZXIYASABKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyIq8BChhDcmVhdGVEbnNQcm92aWRlclJlcXVlc3QSGAoEbmFtZRgBIAEoCUIKukgHyAEBcgIQARI2CgR0eXBlGAIgASgOMhsubWFudHJhZS52MS5EbnNQcm92aWRlclR5cGVCC7pICMgBAYIBAhABEi0KBmNvbmZpZxgDIAEoCzIdLm1hbnRyYWUudjEuRG5zUHJvdmlkZXJDb25maWcSEgoKaXNfZGVmYXVsdBgEIAEoCCJKChlDcmVhdGVEbnNQcm92aWRlclJlc3BvbnNlEi0KDGRuc19wcm92aWRlchgBIAEoCzIXLm1hbnRyYWUudjEuRG5zUHJvdmlkZXIixwEKGFVwZGF0ZURuc1Byb3ZpZGVyUmVxdWVzdBIWCgJpZBgBIAEoA0IKukgHyAEBIgIgABIYCgRuYW1lGAIgASgJQgq6SAfIAQFyAhABEjYKBHR5cGUYAyABKA4yGy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyVHlwZUILukgIyAEBggECEAESLQoGY29uZmlnGAQgASgLMh0ubWFudHJhZS52MS5EbnNQcm92aWRlckNvbmZpZxISCgppc19kZWZhdWx0GAUgASgIIkoKGVVwZGF0ZURuc1Byb3ZpZGVyUmVzcG9uc2USLQoMZG5zX3Byb3ZpZGVyGAEgASgLMhcubWFudHJhZS52MS5EbnNQcm92aWRlciIyChhEZWxldGVEbnNQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKANCCrpIB8gBASICIAAiGwoZRGVsZXRlRG5zUHJvdmlkZXJSZXNwb25zZSK4AQoXTGlzdERuc1Byb3ZpZGVyc1JlcXVlc3QSagoFbGltaXQYASABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSACIAQESHAoGb2Zmc2V0GAIgASgDQge6SAQiAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQiXwoYTGlzdERuc1Byb3ZpZGVyc1Jlc3BvbnNlEi4KDWRuc19wcm92aWRlcnMYASADKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyEhMKC3RvdGFsX2NvdW50GAIgASgDKpgBCg9EbnNQcm92aWRlclR5cGUSIQodRE5TX1BST1ZJREVSX1RZUEVfVU5TUEVDSUZJRUQQABIgChxETlNfUFJPVklERVJfVFlQRV9DTE9VREZMQVJFEAESHgoaRE5TX1BST1ZJREVSX1RZUEVfUE9XRVJETlMQAhIgChxETlNfUFJPVklERVJfVFlQRV9URUNITklUSVVNEAMy/AMKEkRuc1Byb3ZpZGVyU2VydmljZRJcCg5HZXREbnNQcm92aWRlchIhLm1hbnRyYWUudjEuR2V0RG5zUHJvdmlkZXJSZXF1ZXN0GiIubWFudHJhZS52MS5HZXREbnNQcm92aWRlclJlc3BvbnNlIgOQAgESYAoRQ3JlYXRlRG5zUHJvdmlkZXISJC5tYW50cmFlLnYxLkNyZWF0ZURuc1Byb3ZpZGVyUmVxdWVzdBolLm1hbnRyYWUudjEuQ3JlYXRlRG5zUHJvdmlkZXJSZXNwb25zZRJgChFVcGRhdGVEbnNQcm92aWRlchIkLm1hbnRyYWUudjEuVXBkYXRlRG5zUHJvdmlkZXJSZXF1ZXN0GiUubWFudHJhZS52MS5VcGRhdGVEbnNQcm92aWRlclJlc3BvbnNlEmAKEURlbGV0ZURuc1Byb3ZpZGVyEiQubWFudHJhZS52MS5EZWxldGVEbnNQcm92aWRlclJlcXVlc3QaJS5tYW50cmFlLnYxLkRlbGV0ZURuc1Byb3ZpZGVyUmVzcG9uc2USYgoQTGlzdERuc1Byb3ZpZGVycxIjLm1hbnRyYWUudjEuTGlzdERuc1Byb3ZpZGVyc1JlcXVlc3QaJC5tYW50cmFlLnYxLkxpc3REbnNQcm92aWRlcnNSZXNwb25zZSIDkAIBQqoBCg5jb20ubWFudHJhZS52MUIQRG5zUHJvdmlkZXJQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.DnsProvider
*/
export type DnsProvider = Message<"mantrae.v1.DnsProvider"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DnsProvider = Message<'mantrae.v1.DnsProvider'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: mantrae.v1.DnsProviderType type = 3;
*/
type: DnsProviderType;
/**
* @generated from field: mantrae.v1.DnsProviderType type = 3;
*/
type: DnsProviderType;
/**
* @generated from field: mantrae.v1.DnsProviderConfig config = 4;
*/
config?: DnsProviderConfig;
/**
* @generated from field: mantrae.v1.DnsProviderConfig config = 4;
*/
config?: DnsProviderConfig;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: google.protobuf.Timestamp created_at = 6;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 6;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 7;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 7;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.DnsProvider.
* Use `create(DnsProviderSchema)` to create a new message.
*/
export const DnsProviderSchema: GenMessage<DnsProvider> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 0);
export const DnsProviderSchema: GenMessage<DnsProvider> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 0);
/**
* @generated from message mantrae.v1.DnsProviderConfig
*/
export type DnsProviderConfig = Message<"mantrae.v1.DnsProviderConfig"> & {
/**
* @generated from field: string api_key = 1;
*/
apiKey: string;
export type DnsProviderConfig = Message<'mantrae.v1.DnsProviderConfig'> & {
/**
* @generated from field: string api_key = 1;
*/
apiKey: string;
/**
* @generated from field: string api_url = 2;
*/
apiUrl: string;
/**
* @generated from field: string api_url = 2;
*/
apiUrl: string;
/**
* @generated from field: string ip = 3;
*/
ip: string;
/**
* @generated from field: string ip = 3;
*/
ip: string;
/**
* @generated from field: bool proxied = 4;
*/
proxied: boolean;
/**
* @generated from field: bool proxied = 4;
*/
proxied: boolean;
/**
* @generated from field: bool auto_update = 5;
*/
autoUpdate: boolean;
/**
* @generated from field: bool auto_update = 5;
*/
autoUpdate: boolean;
/**
* @generated from field: string zone_type = 6;
*/
zoneType: string;
/**
* @generated from field: string zone_type = 6;
*/
zoneType: string;
};
/**
* Describes the message mantrae.v1.DnsProviderConfig.
* Use `create(DnsProviderConfigSchema)` to create a new message.
*/
export const DnsProviderConfigSchema: GenMessage<DnsProviderConfig> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 1);
export const DnsProviderConfigSchema: GenMessage<DnsProviderConfig> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 1);
/**
* @generated from message mantrae.v1.GetDnsProviderRequest
*/
export type GetDnsProviderRequest = Message<"mantrae.v1.GetDnsProviderRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetDnsProviderRequest = Message<'mantrae.v1.GetDnsProviderRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.GetDnsProviderRequest.
* Use `create(GetDnsProviderRequestSchema)` to create a new message.
*/
export const GetDnsProviderRequestSchema: GenMessage<GetDnsProviderRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 2);
export const GetDnsProviderRequestSchema: GenMessage<GetDnsProviderRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 2);
/**
* @generated from message mantrae.v1.GetDnsProviderResponse
*/
export type GetDnsProviderResponse = Message<"mantrae.v1.GetDnsProviderResponse"> & {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 1;
*/
dnsProvider?: DnsProvider;
export type GetDnsProviderResponse = Message<'mantrae.v1.GetDnsProviderResponse'> & {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 1;
*/
dnsProvider?: DnsProvider;
};
/**
* Describes the message mantrae.v1.GetDnsProviderResponse.
* Use `create(GetDnsProviderResponseSchema)` to create a new message.
*/
export const GetDnsProviderResponseSchema: GenMessage<GetDnsProviderResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 3);
export const GetDnsProviderResponseSchema: GenMessage<GetDnsProviderResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 3);
/**
* @generated from message mantrae.v1.CreateDnsProviderRequest
*/
export type CreateDnsProviderRequest = Message<"mantrae.v1.CreateDnsProviderRequest"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
export type CreateDnsProviderRequest = Message<'mantrae.v1.CreateDnsProviderRequest'> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: mantrae.v1.DnsProviderType type = 2;
*/
type: DnsProviderType;
/**
* @generated from field: mantrae.v1.DnsProviderType type = 2;
*/
type: DnsProviderType;
/**
* @generated from field: mantrae.v1.DnsProviderConfig config = 3;
*/
config?: DnsProviderConfig;
/**
* @generated from field: mantrae.v1.DnsProviderConfig config = 3;
*/
config?: DnsProviderConfig;
/**
* @generated from field: bool is_default = 4;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 4;
*/
isDefault: boolean;
};
/**
* Describes the message mantrae.v1.CreateDnsProviderRequest.
* Use `create(CreateDnsProviderRequestSchema)` to create a new message.
*/
export const CreateDnsProviderRequestSchema: GenMessage<CreateDnsProviderRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 4);
export const CreateDnsProviderRequestSchema: GenMessage<CreateDnsProviderRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 4);
/**
* @generated from message mantrae.v1.CreateDnsProviderResponse
*/
export type CreateDnsProviderResponse = Message<"mantrae.v1.CreateDnsProviderResponse"> & {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 1;
*/
dnsProvider?: DnsProvider;
export type CreateDnsProviderResponse = Message<'mantrae.v1.CreateDnsProviderResponse'> & {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 1;
*/
dnsProvider?: DnsProvider;
};
/**
* Describes the message mantrae.v1.CreateDnsProviderResponse.
* Use `create(CreateDnsProviderResponseSchema)` to create a new message.
*/
export const CreateDnsProviderResponseSchema: GenMessage<CreateDnsProviderResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 5);
export const CreateDnsProviderResponseSchema: GenMessage<CreateDnsProviderResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 5);
/**
* @generated from message mantrae.v1.UpdateDnsProviderRequest
*/
export type UpdateDnsProviderRequest = Message<"mantrae.v1.UpdateDnsProviderRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateDnsProviderRequest = Message<'mantrae.v1.UpdateDnsProviderRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: mantrae.v1.DnsProviderType type = 3;
*/
type: DnsProviderType;
/**
* @generated from field: mantrae.v1.DnsProviderType type = 3;
*/
type: DnsProviderType;
/**
* @generated from field: mantrae.v1.DnsProviderConfig config = 4;
*/
config?: DnsProviderConfig;
/**
* @generated from field: mantrae.v1.DnsProviderConfig config = 4;
*/
config?: DnsProviderConfig;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
};
/**
* Describes the message mantrae.v1.UpdateDnsProviderRequest.
* Use `create(UpdateDnsProviderRequestSchema)` to create a new message.
*/
export const UpdateDnsProviderRequestSchema: GenMessage<UpdateDnsProviderRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 6);
export const UpdateDnsProviderRequestSchema: GenMessage<UpdateDnsProviderRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 6);
/**
* @generated from message mantrae.v1.UpdateDnsProviderResponse
*/
export type UpdateDnsProviderResponse = Message<"mantrae.v1.UpdateDnsProviderResponse"> & {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 1;
*/
dnsProvider?: DnsProvider;
export type UpdateDnsProviderResponse = Message<'mantrae.v1.UpdateDnsProviderResponse'> & {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 1;
*/
dnsProvider?: DnsProvider;
};
/**
* Describes the message mantrae.v1.UpdateDnsProviderResponse.
* Use `create(UpdateDnsProviderResponseSchema)` to create a new message.
*/
export const UpdateDnsProviderResponseSchema: GenMessage<UpdateDnsProviderResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 7);
export const UpdateDnsProviderResponseSchema: GenMessage<UpdateDnsProviderResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 7);
/**
* @generated from message mantrae.v1.DeleteDnsProviderRequest
*/
export type DeleteDnsProviderRequest = Message<"mantrae.v1.DeleteDnsProviderRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteDnsProviderRequest = Message<'mantrae.v1.DeleteDnsProviderRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.DeleteDnsProviderRequest.
* Use `create(DeleteDnsProviderRequestSchema)` to create a new message.
*/
export const DeleteDnsProviderRequestSchema: GenMessage<DeleteDnsProviderRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 8);
export const DeleteDnsProviderRequestSchema: GenMessage<DeleteDnsProviderRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 8);
/**
* @generated from message mantrae.v1.DeleteDnsProviderResponse
*/
export type DeleteDnsProviderResponse = Message<"mantrae.v1.DeleteDnsProviderResponse"> & {
};
export type DeleteDnsProviderResponse = Message<'mantrae.v1.DeleteDnsProviderResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteDnsProviderResponse.
* Use `create(DeleteDnsProviderResponseSchema)` to create a new message.
*/
export const DeleteDnsProviderResponseSchema: GenMessage<DeleteDnsProviderResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 9);
export const DeleteDnsProviderResponseSchema: GenMessage<DeleteDnsProviderResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 9);
/**
* @generated from message mantrae.v1.ListDnsProvidersRequest
*/
export type ListDnsProvidersRequest = Message<"mantrae.v1.ListDnsProvidersRequest"> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
export type ListDnsProvidersRequest = Message<'mantrae.v1.ListDnsProvidersRequest'> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListDnsProvidersRequest.
* Use `create(ListDnsProvidersRequestSchema)` to create a new message.
*/
export const ListDnsProvidersRequestSchema: GenMessage<ListDnsProvidersRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 10);
export const ListDnsProvidersRequestSchema: GenMessage<ListDnsProvidersRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 10);
/**
* @generated from message mantrae.v1.ListDnsProvidersResponse
*/
export type ListDnsProvidersResponse = Message<"mantrae.v1.ListDnsProvidersResponse"> & {
/**
* @generated from field: repeated mantrae.v1.DnsProvider dns_providers = 1;
*/
dnsProviders: DnsProvider[];
export type ListDnsProvidersResponse = Message<'mantrae.v1.ListDnsProvidersResponse'> & {
/**
* @generated from field: repeated mantrae.v1.DnsProvider dns_providers = 1;
*/
dnsProviders: DnsProvider[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListDnsProvidersResponse.
* Use `create(ListDnsProvidersResponseSchema)` to create a new message.
*/
export const ListDnsProvidersResponseSchema: GenMessage<ListDnsProvidersResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 11);
export const ListDnsProvidersResponseSchema: GenMessage<ListDnsProvidersResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_dns_provider, 11);
/**
* @generated from enum mantrae.v1.DnsProviderType
*/
export enum DnsProviderType {
/**
* @generated from enum value: DNS_PROVIDER_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_CLOUDFLARE = 1;
*/
CLOUDFLARE = 1,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_CLOUDFLARE = 1;
*/
CLOUDFLARE = 1,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_POWERDNS = 2;
*/
POWERDNS = 2,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_POWERDNS = 2;
*/
POWERDNS = 2,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_TECHNITIUM = 3;
*/
TECHNITIUM = 3,
/**
* @generated from enum value: DNS_PROVIDER_TYPE_TECHNITIUM = 3;
*/
TECHNITIUM = 3
}
/**
* Describes the enum mantrae.v1.DnsProviderType.
*/
export const DnsProviderTypeSchema: GenEnum<DnsProviderType> = /*@__PURE__*/
enumDesc(file_mantrae_v1_dns_provider, 0);
export const DnsProviderTypeSchema: GenEnum<DnsProviderType> =
/*@__PURE__*/
enumDesc(file_mantrae_v1_dns_provider, 0);
/**
* @generated from service mantrae.v1.DnsProviderService
*/
export const DnsProviderService: GenService<{
/**
* @generated from rpc mantrae.v1.DnsProviderService.GetDnsProvider
*/
getDnsProvider: {
methodKind: "unary";
input: typeof GetDnsProviderRequestSchema;
output: typeof GetDnsProviderResponseSchema;
},
/**
* @generated from rpc mantrae.v1.DnsProviderService.CreateDnsProvider
*/
createDnsProvider: {
methodKind: "unary";
input: typeof CreateDnsProviderRequestSchema;
output: typeof CreateDnsProviderResponseSchema;
},
/**
* @generated from rpc mantrae.v1.DnsProviderService.UpdateDnsProvider
*/
updateDnsProvider: {
methodKind: "unary";
input: typeof UpdateDnsProviderRequestSchema;
output: typeof UpdateDnsProviderResponseSchema;
},
/**
* @generated from rpc mantrae.v1.DnsProviderService.DeleteDnsProvider
*/
deleteDnsProvider: {
methodKind: "unary";
input: typeof DeleteDnsProviderRequestSchema;
output: typeof DeleteDnsProviderResponseSchema;
},
/**
* @generated from rpc mantrae.v1.DnsProviderService.ListDnsProviders
*/
listDnsProviders: {
methodKind: "unary";
input: typeof ListDnsProvidersRequestSchema;
output: typeof ListDnsProvidersResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_dns_provider, 0);
/**
* @generated from rpc mantrae.v1.DnsProviderService.GetDnsProvider
*/
getDnsProvider: {
methodKind: 'unary';
input: typeof GetDnsProviderRequestSchema;
output: typeof GetDnsProviderResponseSchema;
};
/**
* @generated from rpc mantrae.v1.DnsProviderService.CreateDnsProvider
*/
createDnsProvider: {
methodKind: 'unary';
input: typeof CreateDnsProviderRequestSchema;
output: typeof CreateDnsProviderResponseSchema;
};
/**
* @generated from rpc mantrae.v1.DnsProviderService.UpdateDnsProvider
*/
updateDnsProvider: {
methodKind: 'unary';
input: typeof UpdateDnsProviderRequestSchema;
output: typeof UpdateDnsProviderResponseSchema;
};
/**
* @generated from rpc mantrae.v1.DnsProviderService.DeleteDnsProvider
*/
deleteDnsProvider: {
methodKind: 'unary';
input: typeof DeleteDnsProviderRequestSchema;
output: typeof DeleteDnsProviderResponseSchema;
};
/**
* @generated from rpc mantrae.v1.DnsProviderService.ListDnsProviders
*/
listDnsProviders: {
methodKind: 'unary';
input: typeof ListDnsProvidersRequestSchema;
output: typeof ListDnsProvidersResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_dns_provider, 0);

View File

@@ -2,321 +2,333 @@
// @generated from file mantrae/v1/entry_point.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/entry_point.proto.
*/
export const file_mantrae_v1_entry_point: GenFile = /*@__PURE__*/
fileDesc("ChxtYW50cmFlL3YxL2VudHJ5X3BvaW50LnByb3RvEgptYW50cmFlLnYxIr8BCgpFbnRyeVBvaW50EgoKAmlkGAEgASgDEhIKCnByb2ZpbGVfaWQYAiABKAMSDAoEbmFtZRgDIAEoCRIPCgdhZGRyZXNzGAQgASgJEhIKCmlzX2RlZmF1bHQYBSABKAgSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiKwoUR2V0RW50cnlQb2ludFJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAAiRAoVR2V0RW50cnlQb2ludFJlc3BvbnNlEisKC2VudHJ5X3BvaW50GAEgASgLMhYubWFudHJhZS52MS5FbnRyeVBvaW50IoMBChdDcmVhdGVFbnRyeVBvaW50UmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEhUKBG5hbWUYAiABKAlCB7pIBHICEAESEgoKaXNfZGVmYXVsdBgDIAEoCBIUCgdhZGRyZXNzGAQgASgJSACIAQFCCgoIX2FkZHJlc3MiRwoYQ3JlYXRlRW50cnlQb2ludFJlc3BvbnNlEisKC2VudHJ5X3BvaW50GAEgASgLMhYubWFudHJhZS52MS5FbnRyeVBvaW50InsKF1VwZGF0ZUVudHJ5UG9pbnRSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEhUKBG5hbWUYAiABKAlCB7pIBHICEAESEgoKaXNfZGVmYXVsdBgDIAEoCBIUCgdhZGRyZXNzGAQgASgJSACIAQFCCgoIX2FkZHJlc3MiRwoYVXBkYXRlRW50cnlQb2ludFJlc3BvbnNlEisKC2VudHJ5X3BvaW50GAEgASgLMhYubWFudHJhZS52MS5FbnRyeVBvaW50Ii4KF0RlbGV0ZUVudHJ5UG9pbnRSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAIhoKGERlbGV0ZUVudHJ5UG9pbnRSZXNwb25zZSLUAQoWTGlzdEVudHJ5UG9pbnRzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEmoKBWxpbWl0GAIgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgDIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IlwKF0xpc3RFbnRyeVBvaW50c1Jlc3BvbnNlEiwKDGVudHJ5X3BvaW50cxgBIAMoCzIWLm1hbnRyYWUudjEuRW50cnlQb2ludBITCgt0b3RhbF9jb3VudBgCIAEoAzLsAwoRRW50cnlQb2ludFNlcnZpY2USWQoNR2V0RW50cnlQb2ludBIgLm1hbnRyYWUudjEuR2V0RW50cnlQb2ludFJlcXVlc3QaIS5tYW50cmFlLnYxLkdldEVudHJ5UG9pbnRSZXNwb25zZSIDkAIBEl0KEENyZWF0ZUVudHJ5UG9pbnQSIy5tYW50cmFlLnYxLkNyZWF0ZUVudHJ5UG9pbnRSZXF1ZXN0GiQubWFudHJhZS52MS5DcmVhdGVFbnRyeVBvaW50UmVzcG9uc2USXQoQVXBkYXRlRW50cnlQb2ludBIjLm1hbnRyYWUudjEuVXBkYXRlRW50cnlQb2ludFJlcXVlc3QaJC5tYW50cmFlLnYxLlVwZGF0ZUVudHJ5UG9pbnRSZXNwb25zZRJdChBEZWxldGVFbnRyeVBvaW50EiMubWFudHJhZS52MS5EZWxldGVFbnRyeVBvaW50UmVxdWVzdBokLm1hbnRyYWUudjEuRGVsZXRlRW50cnlQb2ludFJlc3BvbnNlEl8KD0xpc3RFbnRyeVBvaW50cxIiLm1hbnRyYWUudjEuTGlzdEVudHJ5UG9pbnRzUmVxdWVzdBojLm1hbnRyYWUudjEuTGlzdEVudHJ5UG9pbnRzUmVzcG9uc2UiA5ACAUKpAQoOY29tLm1hbnRyYWUudjFCD0VudHJ5UG9pbnRQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_entry_point: GenFile =
/*@__PURE__*/
fileDesc(
'ChxtYW50cmFlL3YxL2VudHJ5X3BvaW50LnByb3RvEgptYW50cmFlLnYxIr8BCgpFbnRyeVBvaW50EgoKAmlkGAEgASgDEhIKCnByb2ZpbGVfaWQYAiABKAMSDAoEbmFtZRgDIAEoCRIPCgdhZGRyZXNzGAQgASgJEhIKCmlzX2RlZmF1bHQYBSABKAgSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiKwoUR2V0RW50cnlQb2ludFJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAAiRAoVR2V0RW50cnlQb2ludFJlc3BvbnNlEisKC2VudHJ5X3BvaW50GAEgASgLMhYubWFudHJhZS52MS5FbnRyeVBvaW50IoMBChdDcmVhdGVFbnRyeVBvaW50UmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEhUKBG5hbWUYAiABKAlCB7pIBHICEAESEgoKaXNfZGVmYXVsdBgDIAEoCBIUCgdhZGRyZXNzGAQgASgJSACIAQFCCgoIX2FkZHJlc3MiRwoYQ3JlYXRlRW50cnlQb2ludFJlc3BvbnNlEisKC2VudHJ5X3BvaW50GAEgASgLMhYubWFudHJhZS52MS5FbnRyeVBvaW50InsKF1VwZGF0ZUVudHJ5UG9pbnRSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEhUKBG5hbWUYAiABKAlCB7pIBHICEAESEgoKaXNfZGVmYXVsdBgDIAEoCBIUCgdhZGRyZXNzGAQgASgJSACIAQFCCgoIX2FkZHJlc3MiRwoYVXBkYXRlRW50cnlQb2ludFJlc3BvbnNlEisKC2VudHJ5X3BvaW50GAEgASgLMhYubWFudHJhZS52MS5FbnRyeVBvaW50Ii4KF0RlbGV0ZUVudHJ5UG9pbnRSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAIhoKGERlbGV0ZUVudHJ5UG9pbnRSZXNwb25zZSLUAQoWTGlzdEVudHJ5UG9pbnRzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEmoKBWxpbWl0GAIgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgDIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0IlwKF0xpc3RFbnRyeVBvaW50c1Jlc3BvbnNlEiwKDGVudHJ5X3BvaW50cxgBIAMoCzIWLm1hbnRyYWUudjEuRW50cnlQb2ludBITCgt0b3RhbF9jb3VudBgCIAEoAzLsAwoRRW50cnlQb2ludFNlcnZpY2USWQoNR2V0RW50cnlQb2ludBIgLm1hbnRyYWUudjEuR2V0RW50cnlQb2ludFJlcXVlc3QaIS5tYW50cmFlLnYxLkdldEVudHJ5UG9pbnRSZXNwb25zZSIDkAIBEl0KEENyZWF0ZUVudHJ5UG9pbnQSIy5tYW50cmFlLnYxLkNyZWF0ZUVudHJ5UG9pbnRSZXF1ZXN0GiQubWFudHJhZS52MS5DcmVhdGVFbnRyeVBvaW50UmVzcG9uc2USXQoQVXBkYXRlRW50cnlQb2ludBIjLm1hbnRyYWUudjEuVXBkYXRlRW50cnlQb2ludFJlcXVlc3QaJC5tYW50cmFlLnYxLlVwZGF0ZUVudHJ5UG9pbnRSZXNwb25zZRJdChBEZWxldGVFbnRyeVBvaW50EiMubWFudHJhZS52MS5EZWxldGVFbnRyeVBvaW50UmVxdWVzdBokLm1hbnRyYWUudjEuRGVsZXRlRW50cnlQb2ludFJlc3BvbnNlEl8KD0xpc3RFbnRyeVBvaW50cxIiLm1hbnRyYWUudjEuTGlzdEVudHJ5UG9pbnRzUmVxdWVzdBojLm1hbnRyYWUudjEuTGlzdEVudHJ5UG9pbnRzUmVzcG9uc2UiA5ACAUKpAQoOY29tLm1hbnRyYWUudjFCD0VudHJ5UG9pbnRQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.EntryPoint
*/
export type EntryPoint = Message<"mantrae.v1.EntryPoint"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type EntryPoint = Message<'mantrae.v1.EntryPoint'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string address = 4;
*/
address: string;
/**
* @generated from field: string address = 4;
*/
address: string;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: google.protobuf.Timestamp created_at = 6;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 6;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 7;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 7;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.EntryPoint.
* Use `create(EntryPointSchema)` to create a new message.
*/
export const EntryPointSchema: GenMessage<EntryPoint> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 0);
export const EntryPointSchema: GenMessage<EntryPoint> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 0);
/**
* @generated from message mantrae.v1.GetEntryPointRequest
*/
export type GetEntryPointRequest = Message<"mantrae.v1.GetEntryPointRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetEntryPointRequest = Message<'mantrae.v1.GetEntryPointRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.GetEntryPointRequest.
* Use `create(GetEntryPointRequestSchema)` to create a new message.
*/
export const GetEntryPointRequestSchema: GenMessage<GetEntryPointRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 1);
export const GetEntryPointRequestSchema: GenMessage<GetEntryPointRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 1);
/**
* @generated from message mantrae.v1.GetEntryPointResponse
*/
export type GetEntryPointResponse = Message<"mantrae.v1.GetEntryPointResponse"> & {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 1;
*/
entryPoint?: EntryPoint;
export type GetEntryPointResponse = Message<'mantrae.v1.GetEntryPointResponse'> & {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 1;
*/
entryPoint?: EntryPoint;
};
/**
* Describes the message mantrae.v1.GetEntryPointResponse.
* Use `create(GetEntryPointResponseSchema)` to create a new message.
*/
export const GetEntryPointResponseSchema: GenMessage<GetEntryPointResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 2);
export const GetEntryPointResponseSchema: GenMessage<GetEntryPointResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 2);
/**
* @generated from message mantrae.v1.CreateEntryPointRequest
*/
export type CreateEntryPointRequest = Message<"mantrae.v1.CreateEntryPointRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type CreateEntryPointRequest = Message<'mantrae.v1.CreateEntryPointRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: bool is_default = 3;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 3;
*/
isDefault: boolean;
/**
* @generated from field: optional string address = 4;
*/
address?: string;
/**
* @generated from field: optional string address = 4;
*/
address?: string;
};
/**
* Describes the message mantrae.v1.CreateEntryPointRequest.
* Use `create(CreateEntryPointRequestSchema)` to create a new message.
*/
export const CreateEntryPointRequestSchema: GenMessage<CreateEntryPointRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 3);
export const CreateEntryPointRequestSchema: GenMessage<CreateEntryPointRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 3);
/**
* @generated from message mantrae.v1.CreateEntryPointResponse
*/
export type CreateEntryPointResponse = Message<"mantrae.v1.CreateEntryPointResponse"> & {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 1;
*/
entryPoint?: EntryPoint;
export type CreateEntryPointResponse = Message<'mantrae.v1.CreateEntryPointResponse'> & {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 1;
*/
entryPoint?: EntryPoint;
};
/**
* Describes the message mantrae.v1.CreateEntryPointResponse.
* Use `create(CreateEntryPointResponseSchema)` to create a new message.
*/
export const CreateEntryPointResponseSchema: GenMessage<CreateEntryPointResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 4);
export const CreateEntryPointResponseSchema: GenMessage<CreateEntryPointResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 4);
/**
* @generated from message mantrae.v1.UpdateEntryPointRequest
*/
export type UpdateEntryPointRequest = Message<"mantrae.v1.UpdateEntryPointRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateEntryPointRequest = Message<'mantrae.v1.UpdateEntryPointRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: bool is_default = 3;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 3;
*/
isDefault: boolean;
/**
* @generated from field: optional string address = 4;
*/
address?: string;
/**
* @generated from field: optional string address = 4;
*/
address?: string;
};
/**
* Describes the message mantrae.v1.UpdateEntryPointRequest.
* Use `create(UpdateEntryPointRequestSchema)` to create a new message.
*/
export const UpdateEntryPointRequestSchema: GenMessage<UpdateEntryPointRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 5);
export const UpdateEntryPointRequestSchema: GenMessage<UpdateEntryPointRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 5);
/**
* @generated from message mantrae.v1.UpdateEntryPointResponse
*/
export type UpdateEntryPointResponse = Message<"mantrae.v1.UpdateEntryPointResponse"> & {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 1;
*/
entryPoint?: EntryPoint;
export type UpdateEntryPointResponse = Message<'mantrae.v1.UpdateEntryPointResponse'> & {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 1;
*/
entryPoint?: EntryPoint;
};
/**
* Describes the message mantrae.v1.UpdateEntryPointResponse.
* Use `create(UpdateEntryPointResponseSchema)` to create a new message.
*/
export const UpdateEntryPointResponseSchema: GenMessage<UpdateEntryPointResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 6);
export const UpdateEntryPointResponseSchema: GenMessage<UpdateEntryPointResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 6);
/**
* @generated from message mantrae.v1.DeleteEntryPointRequest
*/
export type DeleteEntryPointRequest = Message<"mantrae.v1.DeleteEntryPointRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteEntryPointRequest = Message<'mantrae.v1.DeleteEntryPointRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.DeleteEntryPointRequest.
* Use `create(DeleteEntryPointRequestSchema)` to create a new message.
*/
export const DeleteEntryPointRequestSchema: GenMessage<DeleteEntryPointRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 7);
export const DeleteEntryPointRequestSchema: GenMessage<DeleteEntryPointRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 7);
/**
* @generated from message mantrae.v1.DeleteEntryPointResponse
*/
export type DeleteEntryPointResponse = Message<"mantrae.v1.DeleteEntryPointResponse"> & {
};
export type DeleteEntryPointResponse = Message<'mantrae.v1.DeleteEntryPointResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteEntryPointResponse.
* Use `create(DeleteEntryPointResponseSchema)` to create a new message.
*/
export const DeleteEntryPointResponseSchema: GenMessage<DeleteEntryPointResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 8);
export const DeleteEntryPointResponseSchema: GenMessage<DeleteEntryPointResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 8);
/**
* @generated from message mantrae.v1.ListEntryPointsRequest
*/
export type ListEntryPointsRequest = Message<"mantrae.v1.ListEntryPointsRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListEntryPointsRequest = Message<'mantrae.v1.ListEntryPointsRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional int64 limit = 2;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 2;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 3;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 3;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListEntryPointsRequest.
* Use `create(ListEntryPointsRequestSchema)` to create a new message.
*/
export const ListEntryPointsRequestSchema: GenMessage<ListEntryPointsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 9);
export const ListEntryPointsRequestSchema: GenMessage<ListEntryPointsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 9);
/**
* @generated from message mantrae.v1.ListEntryPointsResponse
*/
export type ListEntryPointsResponse = Message<"mantrae.v1.ListEntryPointsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.EntryPoint entry_points = 1;
*/
entryPoints: EntryPoint[];
export type ListEntryPointsResponse = Message<'mantrae.v1.ListEntryPointsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.EntryPoint entry_points = 1;
*/
entryPoints: EntryPoint[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListEntryPointsResponse.
* Use `create(ListEntryPointsResponseSchema)` to create a new message.
*/
export const ListEntryPointsResponseSchema: GenMessage<ListEntryPointsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 10);
export const ListEntryPointsResponseSchema: GenMessage<ListEntryPointsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_entry_point, 10);
/**
* @generated from service mantrae.v1.EntryPointService
*/
export const EntryPointService: GenService<{
/**
* @generated from rpc mantrae.v1.EntryPointService.GetEntryPoint
*/
getEntryPoint: {
methodKind: "unary";
input: typeof GetEntryPointRequestSchema;
output: typeof GetEntryPointResponseSchema;
},
/**
* @generated from rpc mantrae.v1.EntryPointService.CreateEntryPoint
*/
createEntryPoint: {
methodKind: "unary";
input: typeof CreateEntryPointRequestSchema;
output: typeof CreateEntryPointResponseSchema;
},
/**
* @generated from rpc mantrae.v1.EntryPointService.UpdateEntryPoint
*/
updateEntryPoint: {
methodKind: "unary";
input: typeof UpdateEntryPointRequestSchema;
output: typeof UpdateEntryPointResponseSchema;
},
/**
* @generated from rpc mantrae.v1.EntryPointService.DeleteEntryPoint
*/
deleteEntryPoint: {
methodKind: "unary";
input: typeof DeleteEntryPointRequestSchema;
output: typeof DeleteEntryPointResponseSchema;
},
/**
* @generated from rpc mantrae.v1.EntryPointService.ListEntryPoints
*/
listEntryPoints: {
methodKind: "unary";
input: typeof ListEntryPointsRequestSchema;
output: typeof ListEntryPointsResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_entry_point, 0);
/**
* @generated from rpc mantrae.v1.EntryPointService.GetEntryPoint
*/
getEntryPoint: {
methodKind: 'unary';
input: typeof GetEntryPointRequestSchema;
output: typeof GetEntryPointResponseSchema;
};
/**
* @generated from rpc mantrae.v1.EntryPointService.CreateEntryPoint
*/
createEntryPoint: {
methodKind: 'unary';
input: typeof CreateEntryPointRequestSchema;
output: typeof CreateEntryPointResponseSchema;
};
/**
* @generated from rpc mantrae.v1.EntryPointService.UpdateEntryPoint
*/
updateEntryPoint: {
methodKind: 'unary';
input: typeof UpdateEntryPointRequestSchema;
output: typeof UpdateEntryPointResponseSchema;
};
/**
* @generated from rpc mantrae.v1.EntryPointService.DeleteEntryPoint
*/
deleteEntryPoint: {
methodKind: 'unary';
input: typeof DeleteEntryPointRequestSchema;
output: typeof DeleteEntryPointResponseSchema;
};
/**
* @generated from rpc mantrae.v1.EntryPointService.ListEntryPoints
*/
listEntryPoints: {
methodKind: 'unary';
input: typeof ListEntryPointsRequestSchema;
output: typeof ListEntryPointsResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_entry_point, 0);

View File

@@ -2,530 +2,553 @@
// @generated from file mantrae/v1/middleware.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { ProtocolType } from "./protocol_pb";
import { file_mantrae_v1_protocol } from "./protocol_pb";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import {
file_google_protobuf_struct,
file_google_protobuf_timestamp
} from '@bufbuild/protobuf/wkt';
import type { ProtocolType } from './protocol_pb';
import { file_mantrae_v1_protocol } from './protocol_pb';
import type { JsonObject, Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/middleware.proto.
*/
export const file_mantrae_v1_middleware: GenFile = /*@__PURE__*/
fileDesc("ChttYW50cmFlL3YxL21pZGRsZXdhcmUucHJvdG8SCm1hbnRyYWUudjEiogIKCk1pZGRsZXdhcmUSCgoCaWQYASABKAMSEgoKcHJvZmlsZV9pZBgCIAEoAxIQCghhZ2VudF9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEicKBmNvbmZpZxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgGIAEoCBISCgppc19kZWZhdWx0GAcgASgIEiYKBHR5cGUYCCABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZRIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKmAgoGUGx1Z2luEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEg4KBmF1dGhvchgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBmltcG9ydBgGIAEoCRIPCgdzdW1tYXJ5GAcgASgJEhAKCGljb25fdXJsGAggASgJEhIKCmJhbm5lcl91cmwYCSABKAkSDgoGcmVhZG1lGAogASgJEhYKDmxhdGVzdF92ZXJzaW9uGAsgASgJEhAKCHZlcnNpb25zGAwgAygJEg0KBXN0YXJzGA0gASgDEioKB3NuaXBwZXQYDiABKAsyGS5tYW50cmFlLnYxLlBsdWdpblNuaXBwZXQSEgoKY3JlYXRlZF9hdBgPIAEoCSI4Cg1QbHVnaW5TbmlwcGV0EgsKA2s4cxgBIAEoCRIMCgR5YW1sGAIgASgJEgwKBHRvbWwYAyABKAkiXQoUR2V0TWlkZGxld2FyZVJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAASMAoEdHlwZRgCIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQASJDChVHZXRNaWRkbGV3YXJlUmVzcG9uc2USKgoKbWlkZGxld2FyZRgBIAEoCzIWLm1hbnRyYWUudjEuTWlkZGxld2FyZSLgAQoXQ3JlYXRlTWlkZGxld2FyZVJlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABIVCghhZ2VudF9pZBgCIAEoCUgAiAEBEhUKBG5hbWUYAyABKAlCB7pIBHICEAESMAoEdHlwZRgEIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQARISCgppc19kZWZhdWx0GAUgASgIEicKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCwoJX2FnZW50X2lkIkYKGENyZWF0ZU1pZGRsZXdhcmVSZXNwb25zZRIqCgptaWRkbGV3YXJlGAEgASgLMhYubWFudHJhZS52MS5NaWRkbGV3YXJlIsUBChdVcGRhdGVNaWRkbGV3YXJlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEjAKBHR5cGUYAyABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAESJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAUgASgIEhIKCmlzX2RlZmF1bHQYBiABKAgiRgoYVXBkYXRlTWlkZGxld2FyZVJlc3BvbnNlEioKCm1pZGRsZXdhcmUYASABKAsyFi5tYW50cmFlLnYxLk1pZGRsZXdhcmUiYAoXRGVsZXRlTWlkZGxld2FyZVJlcXVlc3QSEwoCaWQYAiABKANCB7pIBCICIAASMAoEdHlwZRgDIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQASIaChhEZWxldGVNaWRkbGV3YXJlUmVzcG9uc2UitwIKFkxpc3RNaWRkbGV3YXJlc1JlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABIeCghhZ2VudF9pZBgCIAEoCUIHukgEcgIQAUgAiAEBEisKBHR5cGUYAyABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUgBiAEBEmoKBWxpbWl0GAQgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgCiAEBEhwKBm9mZnNldBgFIAEoA0IHukgEIgIoAEgDiAEBQgsKCV9hZ2VudF9pZEIHCgVfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJbChdMaXN0TWlkZGxld2FyZXNSZXNwb25zZRIrCgttaWRkbGV3YXJlcxgBIAMoCzIWLm1hbnRyYWUudjEuTWlkZGxld2FyZRITCgt0b3RhbF9jb3VudBgCIAEoAyIdChtHZXRNaWRkbGV3YXJlUGx1Z2luc1JlcXVlc3QiQwocR2V0TWlkZGxld2FyZVBsdWdpbnNSZXNwb25zZRIjCgdwbHVnaW5zGAEgAygLMhIubWFudHJhZS52MS5QbHVnaW4y3AQKEU1pZGRsZXdhcmVTZXJ2aWNlElkKDUdldE1pZGRsZXdhcmUSIC5tYW50cmFlLnYxLkdldE1pZGRsZXdhcmVSZXF1ZXN0GiEubWFudHJhZS52MS5HZXRNaWRkbGV3YXJlUmVzcG9uc2UiA5ACARJdChBDcmVhdGVNaWRkbGV3YXJlEiMubWFudHJhZS52MS5DcmVhdGVNaWRkbGV3YXJlUmVxdWVzdBokLm1hbnRyYWUudjEuQ3JlYXRlTWlkZGxld2FyZVJlc3BvbnNlEl0KEFVwZGF0ZU1pZGRsZXdhcmUSIy5tYW50cmFlLnYxLlVwZGF0ZU1pZGRsZXdhcmVSZXF1ZXN0GiQubWFudHJhZS52MS5VcGRhdGVNaWRkbGV3YXJlUmVzcG9uc2USXQoQRGVsZXRlTWlkZGxld2FyZRIjLm1hbnRyYWUudjEuRGVsZXRlTWlkZGxld2FyZVJlcXVlc3QaJC5tYW50cmFlLnYxLkRlbGV0ZU1pZGRsZXdhcmVSZXNwb25zZRJfCg9MaXN0TWlkZGxld2FyZXMSIi5tYW50cmFlLnYxLkxpc3RNaWRkbGV3YXJlc1JlcXVlc3QaIy5tYW50cmFlLnYxLkxpc3RNaWRkbGV3YXJlc1Jlc3BvbnNlIgOQAgESbgoUR2V0TWlkZGxld2FyZVBsdWdpbnMSJy5tYW50cmFlLnYxLkdldE1pZGRsZXdhcmVQbHVnaW5zUmVxdWVzdBooLm1hbnRyYWUudjEuR2V0TWlkZGxld2FyZVBsdWdpbnNSZXNwb25zZSIDkAIBQqkBCg5jb20ubWFudHJhZS52MUIPTWlkZGxld2FyZVByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp, file_mantrae_v1_protocol]);
export const file_mantrae_v1_middleware: GenFile =
/*@__PURE__*/
fileDesc(
'ChttYW50cmFlL3YxL21pZGRsZXdhcmUucHJvdG8SCm1hbnRyYWUudjEiogIKCk1pZGRsZXdhcmUSCgoCaWQYASABKAMSEgoKcHJvZmlsZV9pZBgCIAEoAxIQCghhZ2VudF9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEicKBmNvbmZpZxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgGIAEoCBISCgppc19kZWZhdWx0GAcgASgIEiYKBHR5cGUYCCABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZRIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKmAgoGUGx1Z2luEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEg4KBmF1dGhvchgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBmltcG9ydBgGIAEoCRIPCgdzdW1tYXJ5GAcgASgJEhAKCGljb25fdXJsGAggASgJEhIKCmJhbm5lcl91cmwYCSABKAkSDgoGcmVhZG1lGAogASgJEhYKDmxhdGVzdF92ZXJzaW9uGAsgASgJEhAKCHZlcnNpb25zGAwgAygJEg0KBXN0YXJzGA0gASgDEioKB3NuaXBwZXQYDiABKAsyGS5tYW50cmFlLnYxLlBsdWdpblNuaXBwZXQSEgoKY3JlYXRlZF9hdBgPIAEoCSI4Cg1QbHVnaW5TbmlwcGV0EgsKA2s4cxgBIAEoCRIMCgR5YW1sGAIgASgJEgwKBHRvbWwYAyABKAkiXQoUR2V0TWlkZGxld2FyZVJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAASMAoEdHlwZRgCIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQASJDChVHZXRNaWRkbGV3YXJlUmVzcG9uc2USKgoKbWlkZGxld2FyZRgBIAEoCzIWLm1hbnRyYWUudjEuTWlkZGxld2FyZSLgAQoXQ3JlYXRlTWlkZGxld2FyZVJlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABIVCghhZ2VudF9pZBgCIAEoCUgAiAEBEhUKBG5hbWUYAyABKAlCB7pIBHICEAESMAoEdHlwZRgEIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQARISCgppc19kZWZhdWx0GAUgASgIEicKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCwoJX2FnZW50X2lkIkYKGENyZWF0ZU1pZGRsZXdhcmVSZXNwb25zZRIqCgptaWRkbGV3YXJlGAEgASgLMhYubWFudHJhZS52MS5NaWRkbGV3YXJlIsUBChdVcGRhdGVNaWRkbGV3YXJlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEjAKBHR5cGUYAyABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAESJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAUgASgIEhIKCmlzX2RlZmF1bHQYBiABKAgiRgoYVXBkYXRlTWlkZGxld2FyZVJlc3BvbnNlEioKCm1pZGRsZXdhcmUYASABKAsyFi5tYW50cmFlLnYxLk1pZGRsZXdhcmUiYAoXRGVsZXRlTWlkZGxld2FyZVJlcXVlc3QSEwoCaWQYAiABKANCB7pIBCICIAASMAoEdHlwZRgDIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQASIaChhEZWxldGVNaWRkbGV3YXJlUmVzcG9uc2UitwIKFkxpc3RNaWRkbGV3YXJlc1JlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABIeCghhZ2VudF9pZBgCIAEoCUIHukgEcgIQAUgAiAEBEisKBHR5cGUYAyABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUgBiAEBEmoKBWxpbWl0GAQgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgCiAEBEhwKBm9mZnNldBgFIAEoA0IHukgEIgIoAEgDiAEBQgsKCV9hZ2VudF9pZEIHCgVfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJbChdMaXN0TWlkZGxld2FyZXNSZXNwb25zZRIrCgttaWRkbGV3YXJlcxgBIAMoCzIWLm1hbnRyYWUudjEuTWlkZGxld2FyZRITCgt0b3RhbF9jb3VudBgCIAEoAyIdChtHZXRNaWRkbGV3YXJlUGx1Z2luc1JlcXVlc3QiQwocR2V0TWlkZGxld2FyZVBsdWdpbnNSZXNwb25zZRIjCgdwbHVnaW5zGAEgAygLMhIubWFudHJhZS52MS5QbHVnaW4y3AQKEU1pZGRsZXdhcmVTZXJ2aWNlElkKDUdldE1pZGRsZXdhcmUSIC5tYW50cmFlLnYxLkdldE1pZGRsZXdhcmVSZXF1ZXN0GiEubWFudHJhZS52MS5HZXRNaWRkbGV3YXJlUmVzcG9uc2UiA5ACARJdChBDcmVhdGVNaWRkbGV3YXJlEiMubWFudHJhZS52MS5DcmVhdGVNaWRkbGV3YXJlUmVxdWVzdBokLm1hbnRyYWUudjEuQ3JlYXRlTWlkZGxld2FyZVJlc3BvbnNlEl0KEFVwZGF0ZU1pZGRsZXdhcmUSIy5tYW50cmFlLnYxLlVwZGF0ZU1pZGRsZXdhcmVSZXF1ZXN0GiQubWFudHJhZS52MS5VcGRhdGVNaWRkbGV3YXJlUmVzcG9uc2USXQoQRGVsZXRlTWlkZGxld2FyZRIjLm1hbnRyYWUudjEuRGVsZXRlTWlkZGxld2FyZVJlcXVlc3QaJC5tYW50cmFlLnYxLkRlbGV0ZU1pZGRsZXdhcmVSZXNwb25zZRJfCg9MaXN0TWlkZGxld2FyZXMSIi5tYW50cmFlLnYxLkxpc3RNaWRkbGV3YXJlc1JlcXVlc3QaIy5tYW50cmFlLnYxLkxpc3RNaWRkbGV3YXJlc1Jlc3BvbnNlIgOQAgESbgoUR2V0TWlkZGxld2FyZVBsdWdpbnMSJy5tYW50cmFlLnYxLkdldE1pZGRsZXdhcmVQbHVnaW5zUmVxdWVzdBooLm1hbnRyYWUudjEuR2V0TWlkZGxld2FyZVBsdWdpbnNSZXNwb25zZSIDkAIBQqkBCg5jb20ubWFudHJhZS52MUIPTWlkZGxld2FyZVByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z',
[
file_buf_validate_validate,
file_google_protobuf_struct,
file_google_protobuf_timestamp,
file_mantrae_v1_protocol
]
);
/**
* @generated from message mantrae.v1.Middleware
*/
export type Middleware = Message<"mantrae.v1.Middleware"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type Middleware = Message<'mantrae.v1.Middleware'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 5;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 5;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 6;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 6;
*/
enabled: boolean;
/**
* @generated from field: bool is_default = 7;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 7;
*/
isDefault: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 8;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 8;
*/
type: ProtocolType;
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Middleware.
* Use `create(MiddlewareSchema)` to create a new message.
*/
export const MiddlewareSchema: GenMessage<Middleware> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 0);
export const MiddlewareSchema: GenMessage<Middleware> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 0);
/**
* @generated from message mantrae.v1.Plugin
*/
export type Plugin = Message<"mantrae.v1.Plugin"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type Plugin = Message<'mantrae.v1.Plugin'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string display_name = 3;
*/
displayName: string;
/**
* @generated from field: string display_name = 3;
*/
displayName: string;
/**
* @generated from field: string author = 4;
*/
author: string;
/**
* @generated from field: string author = 4;
*/
author: string;
/**
* @generated from field: string type = 5;
*/
type: string;
/**
* @generated from field: string type = 5;
*/
type: string;
/**
* @generated from field: string import = 6;
*/
import: string;
/**
* @generated from field: string import = 6;
*/
import: string;
/**
* @generated from field: string summary = 7;
*/
summary: string;
/**
* @generated from field: string summary = 7;
*/
summary: string;
/**
* @generated from field: string icon_url = 8;
*/
iconUrl: string;
/**
* @generated from field: string icon_url = 8;
*/
iconUrl: string;
/**
* @generated from field: string banner_url = 9;
*/
bannerUrl: string;
/**
* @generated from field: string banner_url = 9;
*/
bannerUrl: string;
/**
* @generated from field: string readme = 10;
*/
readme: string;
/**
* @generated from field: string readme = 10;
*/
readme: string;
/**
* @generated from field: string latest_version = 11;
*/
latestVersion: string;
/**
* @generated from field: string latest_version = 11;
*/
latestVersion: string;
/**
* @generated from field: repeated string versions = 12;
*/
versions: string[];
/**
* @generated from field: repeated string versions = 12;
*/
versions: string[];
/**
* @generated from field: int64 stars = 13;
*/
stars: bigint;
/**
* @generated from field: int64 stars = 13;
*/
stars: bigint;
/**
* @generated from field: mantrae.v1.PluginSnippet snippet = 14;
*/
snippet?: PluginSnippet;
/**
* @generated from field: mantrae.v1.PluginSnippet snippet = 14;
*/
snippet?: PluginSnippet;
/**
* @generated from field: string created_at = 15;
*/
createdAt: string;
/**
* @generated from field: string created_at = 15;
*/
createdAt: string;
};
/**
* Describes the message mantrae.v1.Plugin.
* Use `create(PluginSchema)` to create a new message.
*/
export const PluginSchema: GenMessage<Plugin> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 1);
export const PluginSchema: GenMessage<Plugin> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 1);
/**
* @generated from message mantrae.v1.PluginSnippet
*/
export type PluginSnippet = Message<"mantrae.v1.PluginSnippet"> & {
/**
* @generated from field: string k8s = 1;
*/
k8s: string;
export type PluginSnippet = Message<'mantrae.v1.PluginSnippet'> & {
/**
* @generated from field: string k8s = 1;
*/
k8s: string;
/**
* @generated from field: string yaml = 2;
*/
yaml: string;
/**
* @generated from field: string yaml = 2;
*/
yaml: string;
/**
* @generated from field: string toml = 3;
*/
toml: string;
/**
* @generated from field: string toml = 3;
*/
toml: string;
};
/**
* Describes the message mantrae.v1.PluginSnippet.
* Use `create(PluginSnippetSchema)` to create a new message.
*/
export const PluginSnippetSchema: GenMessage<PluginSnippet> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 2);
export const PluginSnippetSchema: GenMessage<PluginSnippet> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 2);
/**
* @generated from message mantrae.v1.GetMiddlewareRequest
*/
export type GetMiddlewareRequest = Message<"mantrae.v1.GetMiddlewareRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetMiddlewareRequest = Message<'mantrae.v1.GetMiddlewareRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.GetMiddlewareRequest.
* Use `create(GetMiddlewareRequestSchema)` to create a new message.
*/
export const GetMiddlewareRequestSchema: GenMessage<GetMiddlewareRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 3);
export const GetMiddlewareRequestSchema: GenMessage<GetMiddlewareRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 3);
/**
* @generated from message mantrae.v1.GetMiddlewareResponse
*/
export type GetMiddlewareResponse = Message<"mantrae.v1.GetMiddlewareResponse"> & {
/**
* @generated from field: mantrae.v1.Middleware middleware = 1;
*/
middleware?: Middleware;
export type GetMiddlewareResponse = Message<'mantrae.v1.GetMiddlewareResponse'> & {
/**
* @generated from field: mantrae.v1.Middleware middleware = 1;
*/
middleware?: Middleware;
};
/**
* Describes the message mantrae.v1.GetMiddlewareResponse.
* Use `create(GetMiddlewareResponseSchema)` to create a new message.
*/
export const GetMiddlewareResponseSchema: GenMessage<GetMiddlewareResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 4);
export const GetMiddlewareResponseSchema: GenMessage<GetMiddlewareResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 4);
/**
* @generated from message mantrae.v1.CreateMiddlewareRequest
*/
export type CreateMiddlewareRequest = Message<"mantrae.v1.CreateMiddlewareRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type CreateMiddlewareRequest = Message<'mantrae.v1.CreateMiddlewareRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: mantrae.v1.ProtocolType type = 4;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 4;
*/
type: ProtocolType;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 5;
*/
isDefault: boolean;
/**
* @generated from field: google.protobuf.Struct config = 6;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 6;
*/
config?: JsonObject;
};
/**
* Describes the message mantrae.v1.CreateMiddlewareRequest.
* Use `create(CreateMiddlewareRequestSchema)` to create a new message.
*/
export const CreateMiddlewareRequestSchema: GenMessage<CreateMiddlewareRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 5);
export const CreateMiddlewareRequestSchema: GenMessage<CreateMiddlewareRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 5);
/**
* @generated from message mantrae.v1.CreateMiddlewareResponse
*/
export type CreateMiddlewareResponse = Message<"mantrae.v1.CreateMiddlewareResponse"> & {
/**
* @generated from field: mantrae.v1.Middleware middleware = 1;
*/
middleware?: Middleware;
export type CreateMiddlewareResponse = Message<'mantrae.v1.CreateMiddlewareResponse'> & {
/**
* @generated from field: mantrae.v1.Middleware middleware = 1;
*/
middleware?: Middleware;
};
/**
* Describes the message mantrae.v1.CreateMiddlewareResponse.
* Use `create(CreateMiddlewareResponseSchema)` to create a new message.
*/
export const CreateMiddlewareResponseSchema: GenMessage<CreateMiddlewareResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 6);
export const CreateMiddlewareResponseSchema: GenMessage<CreateMiddlewareResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 6);
/**
* @generated from message mantrae.v1.UpdateMiddlewareRequest
*/
export type UpdateMiddlewareRequest = Message<"mantrae.v1.UpdateMiddlewareRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateMiddlewareRequest = Message<'mantrae.v1.UpdateMiddlewareRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: mantrae.v1.ProtocolType type = 3;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 3;
*/
type: ProtocolType;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool is_default = 6;
*/
isDefault: boolean;
/**
* @generated from field: bool is_default = 6;
*/
isDefault: boolean;
};
/**
* Describes the message mantrae.v1.UpdateMiddlewareRequest.
* Use `create(UpdateMiddlewareRequestSchema)` to create a new message.
*/
export const UpdateMiddlewareRequestSchema: GenMessage<UpdateMiddlewareRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 7);
export const UpdateMiddlewareRequestSchema: GenMessage<UpdateMiddlewareRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 7);
/**
* @generated from message mantrae.v1.UpdateMiddlewareResponse
*/
export type UpdateMiddlewareResponse = Message<"mantrae.v1.UpdateMiddlewareResponse"> & {
/**
* @generated from field: mantrae.v1.Middleware middleware = 1;
*/
middleware?: Middleware;
export type UpdateMiddlewareResponse = Message<'mantrae.v1.UpdateMiddlewareResponse'> & {
/**
* @generated from field: mantrae.v1.Middleware middleware = 1;
*/
middleware?: Middleware;
};
/**
* Describes the message mantrae.v1.UpdateMiddlewareResponse.
* Use `create(UpdateMiddlewareResponseSchema)` to create a new message.
*/
export const UpdateMiddlewareResponseSchema: GenMessage<UpdateMiddlewareResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 8);
export const UpdateMiddlewareResponseSchema: GenMessage<UpdateMiddlewareResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 8);
/**
* @generated from message mantrae.v1.DeleteMiddlewareRequest
*/
export type DeleteMiddlewareRequest = Message<"mantrae.v1.DeleteMiddlewareRequest"> & {
/**
* @generated from field: int64 id = 2;
*/
id: bigint;
export type DeleteMiddlewareRequest = Message<'mantrae.v1.DeleteMiddlewareRequest'> & {
/**
* @generated from field: int64 id = 2;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 3;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 3;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.DeleteMiddlewareRequest.
* Use `create(DeleteMiddlewareRequestSchema)` to create a new message.
*/
export const DeleteMiddlewareRequestSchema: GenMessage<DeleteMiddlewareRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 9);
export const DeleteMiddlewareRequestSchema: GenMessage<DeleteMiddlewareRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 9);
/**
* @generated from message mantrae.v1.DeleteMiddlewareResponse
*/
export type DeleteMiddlewareResponse = Message<"mantrae.v1.DeleteMiddlewareResponse"> & {
};
export type DeleteMiddlewareResponse = Message<'mantrae.v1.DeleteMiddlewareResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteMiddlewareResponse.
* Use `create(DeleteMiddlewareResponseSchema)` to create a new message.
*/
export const DeleteMiddlewareResponseSchema: GenMessage<DeleteMiddlewareResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 10);
export const DeleteMiddlewareResponseSchema: GenMessage<DeleteMiddlewareResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 10);
/**
* @generated from message mantrae.v1.ListMiddlewaresRequest
*/
export type ListMiddlewaresRequest = Message<"mantrae.v1.ListMiddlewaresRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListMiddlewaresRequest = Message<'mantrae.v1.ListMiddlewaresRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListMiddlewaresRequest.
* Use `create(ListMiddlewaresRequestSchema)` to create a new message.
*/
export const ListMiddlewaresRequestSchema: GenMessage<ListMiddlewaresRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 11);
export const ListMiddlewaresRequestSchema: GenMessage<ListMiddlewaresRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 11);
/**
* @generated from message mantrae.v1.ListMiddlewaresResponse
*/
export type ListMiddlewaresResponse = Message<"mantrae.v1.ListMiddlewaresResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Middleware middlewares = 1;
*/
middlewares: Middleware[];
export type ListMiddlewaresResponse = Message<'mantrae.v1.ListMiddlewaresResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Middleware middlewares = 1;
*/
middlewares: Middleware[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListMiddlewaresResponse.
* Use `create(ListMiddlewaresResponseSchema)` to create a new message.
*/
export const ListMiddlewaresResponseSchema: GenMessage<ListMiddlewaresResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 12);
export const ListMiddlewaresResponseSchema: GenMessage<ListMiddlewaresResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 12);
/**
* @generated from message mantrae.v1.GetMiddlewarePluginsRequest
*/
export type GetMiddlewarePluginsRequest = Message<"mantrae.v1.GetMiddlewarePluginsRequest"> & {
};
export type GetMiddlewarePluginsRequest = Message<'mantrae.v1.GetMiddlewarePluginsRequest'> & {};
/**
* Describes the message mantrae.v1.GetMiddlewarePluginsRequest.
* Use `create(GetMiddlewarePluginsRequestSchema)` to create a new message.
*/
export const GetMiddlewarePluginsRequestSchema: GenMessage<GetMiddlewarePluginsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 13);
export const GetMiddlewarePluginsRequestSchema: GenMessage<GetMiddlewarePluginsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 13);
/**
* @generated from message mantrae.v1.GetMiddlewarePluginsResponse
*/
export type GetMiddlewarePluginsResponse = Message<"mantrae.v1.GetMiddlewarePluginsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Plugin plugins = 1;
*/
plugins: Plugin[];
export type GetMiddlewarePluginsResponse = Message<'mantrae.v1.GetMiddlewarePluginsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Plugin plugins = 1;
*/
plugins: Plugin[];
};
/**
* Describes the message mantrae.v1.GetMiddlewarePluginsResponse.
* Use `create(GetMiddlewarePluginsResponseSchema)` to create a new message.
*/
export const GetMiddlewarePluginsResponseSchema: GenMessage<GetMiddlewarePluginsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 14);
export const GetMiddlewarePluginsResponseSchema: GenMessage<GetMiddlewarePluginsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_middleware, 14);
/**
* @generated from service mantrae.v1.MiddlewareService
*/
export const MiddlewareService: GenService<{
/**
* @generated from rpc mantrae.v1.MiddlewareService.GetMiddleware
*/
getMiddleware: {
methodKind: "unary";
input: typeof GetMiddlewareRequestSchema;
output: typeof GetMiddlewareResponseSchema;
},
/**
* @generated from rpc mantrae.v1.MiddlewareService.CreateMiddleware
*/
createMiddleware: {
methodKind: "unary";
input: typeof CreateMiddlewareRequestSchema;
output: typeof CreateMiddlewareResponseSchema;
},
/**
* @generated from rpc mantrae.v1.MiddlewareService.UpdateMiddleware
*/
updateMiddleware: {
methodKind: "unary";
input: typeof UpdateMiddlewareRequestSchema;
output: typeof UpdateMiddlewareResponseSchema;
},
/**
* @generated from rpc mantrae.v1.MiddlewareService.DeleteMiddleware
*/
deleteMiddleware: {
methodKind: "unary";
input: typeof DeleteMiddlewareRequestSchema;
output: typeof DeleteMiddlewareResponseSchema;
},
/**
* @generated from rpc mantrae.v1.MiddlewareService.ListMiddlewares
*/
listMiddlewares: {
methodKind: "unary";
input: typeof ListMiddlewaresRequestSchema;
output: typeof ListMiddlewaresResponseSchema;
},
/**
* @generated from rpc mantrae.v1.MiddlewareService.GetMiddlewarePlugins
*/
getMiddlewarePlugins: {
methodKind: "unary";
input: typeof GetMiddlewarePluginsRequestSchema;
output: typeof GetMiddlewarePluginsResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_middleware, 0);
/**
* @generated from rpc mantrae.v1.MiddlewareService.GetMiddleware
*/
getMiddleware: {
methodKind: 'unary';
input: typeof GetMiddlewareRequestSchema;
output: typeof GetMiddlewareResponseSchema;
};
/**
* @generated from rpc mantrae.v1.MiddlewareService.CreateMiddleware
*/
createMiddleware: {
methodKind: 'unary';
input: typeof CreateMiddlewareRequestSchema;
output: typeof CreateMiddlewareResponseSchema;
};
/**
* @generated from rpc mantrae.v1.MiddlewareService.UpdateMiddleware
*/
updateMiddleware: {
methodKind: 'unary';
input: typeof UpdateMiddlewareRequestSchema;
output: typeof UpdateMiddlewareResponseSchema;
};
/**
* @generated from rpc mantrae.v1.MiddlewareService.DeleteMiddleware
*/
deleteMiddleware: {
methodKind: 'unary';
input: typeof DeleteMiddlewareRequestSchema;
output: typeof DeleteMiddlewareResponseSchema;
};
/**
* @generated from rpc mantrae.v1.MiddlewareService.ListMiddlewares
*/
listMiddlewares: {
methodKind: 'unary';
input: typeof ListMiddlewaresRequestSchema;
output: typeof ListMiddlewaresResponseSchema;
};
/**
* @generated from rpc mantrae.v1.MiddlewareService.GetMiddlewarePlugins
*/
getMiddlewarePlugins: {
methodKind: 'unary';
input: typeof GetMiddlewarePluginsRequestSchema;
output: typeof GetMiddlewarePluginsResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_middleware, 0);

View File

@@ -2,301 +2,313 @@
// @generated from file mantrae/v1/profile.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/profile.proto.
*/
export const file_mantrae_v1_profile: GenFile = /*@__PURE__*/
fileDesc("ChhtYW50cmFlL3YxL3Byb2ZpbGUucHJvdG8SCm1hbnRyYWUudjEipwEKB1Byb2ZpbGUSCgoCaWQYASABKAMSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRINCgV0b2tlbhgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIoChFHZXRQcm9maWxlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgACI6ChJHZXRQcm9maWxlUmVzcG9uc2USJAoHcHJvZmlsZRgBIAEoCzITLm1hbnRyYWUudjEuUHJvZmlsZSJXChRDcmVhdGVQcm9maWxlUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhgKC2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uIj0KFUNyZWF0ZVByb2ZpbGVSZXNwb25zZRIkCgdwcm9maWxlGAEgASgLMhMubWFudHJhZS52MS5Qcm9maWxlIqABChRVcGRhdGVQcm9maWxlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESHQoQcmVnZW5lcmF0ZV90b2tlbhgEIAEoCEgBiAEBQg4KDF9kZXNjcmlwdGlvbkITChFfcmVnZW5lcmF0ZV90b2tlbiI9ChVVcGRhdGVQcm9maWxlUmVzcG9uc2USJAoHcHJvZmlsZRgBIAEoCzITLm1hbnRyYWUudjEuUHJvZmlsZSIrChREZWxldGVQcm9maWxlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgACIXChVEZWxldGVQcm9maWxlUmVzcG9uc2UitAEKE0xpc3RQcm9maWxlc1JlcXVlc3QSagoFbGltaXQYASABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSACIAQESHAoGb2Zmc2V0GAIgASgDQge6SAQiAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQiUgoUTGlzdFByb2ZpbGVzUmVzcG9uc2USJQoIcHJvZmlsZXMYASADKAsyEy5tYW50cmFlLnYxLlByb2ZpbGUSEwoLdG90YWxfY291bnQYAiABKAMyvAMKDlByb2ZpbGVTZXJ2aWNlElAKCkdldFByb2ZpbGUSHS5tYW50cmFlLnYxLkdldFByb2ZpbGVSZXF1ZXN0Gh4ubWFudHJhZS52MS5HZXRQcm9maWxlUmVzcG9uc2UiA5ACARJUCg1DcmVhdGVQcm9maWxlEiAubWFudHJhZS52MS5DcmVhdGVQcm9maWxlUmVxdWVzdBohLm1hbnRyYWUudjEuQ3JlYXRlUHJvZmlsZVJlc3BvbnNlElQKDVVwZGF0ZVByb2ZpbGUSIC5tYW50cmFlLnYxLlVwZGF0ZVByb2ZpbGVSZXF1ZXN0GiEubWFudHJhZS52MS5VcGRhdGVQcm9maWxlUmVzcG9uc2USVAoNRGVsZXRlUHJvZmlsZRIgLm1hbnRyYWUudjEuRGVsZXRlUHJvZmlsZVJlcXVlc3QaIS5tYW50cmFlLnYxLkRlbGV0ZVByb2ZpbGVSZXNwb25zZRJWCgxMaXN0UHJvZmlsZXMSHy5tYW50cmFlLnYxLkxpc3RQcm9maWxlc1JlcXVlc3QaIC5tYW50cmFlLnYxLkxpc3RQcm9maWxlc1Jlc3BvbnNlIgOQAgFCpgEKDmNvbS5tYW50cmFlLnYxQgxQcm9maWxlUHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_profile: GenFile =
/*@__PURE__*/
fileDesc(
'ChhtYW50cmFlL3YxL3Byb2ZpbGUucHJvdG8SCm1hbnRyYWUudjEipwEKB1Byb2ZpbGUSCgoCaWQYASABKAMSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRINCgV0b2tlbhgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIoChFHZXRQcm9maWxlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgACI6ChJHZXRQcm9maWxlUmVzcG9uc2USJAoHcHJvZmlsZRgBIAEoCzITLm1hbnRyYWUudjEuUHJvZmlsZSJXChRDcmVhdGVQcm9maWxlUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhgKC2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uIj0KFUNyZWF0ZVByb2ZpbGVSZXNwb25zZRIkCgdwcm9maWxlGAEgASgLMhMubWFudHJhZS52MS5Qcm9maWxlIqABChRVcGRhdGVQcm9maWxlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESHQoQcmVnZW5lcmF0ZV90b2tlbhgEIAEoCEgBiAEBQg4KDF9kZXNjcmlwdGlvbkITChFfcmVnZW5lcmF0ZV90b2tlbiI9ChVVcGRhdGVQcm9maWxlUmVzcG9uc2USJAoHcHJvZmlsZRgBIAEoCzITLm1hbnRyYWUudjEuUHJvZmlsZSIrChREZWxldGVQcm9maWxlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgACIXChVEZWxldGVQcm9maWxlUmVzcG9uc2UitAEKE0xpc3RQcm9maWxlc1JlcXVlc3QSagoFbGltaXQYASABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSACIAQESHAoGb2Zmc2V0GAIgASgDQge6SAQiAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQiUgoUTGlzdFByb2ZpbGVzUmVzcG9uc2USJQoIcHJvZmlsZXMYASADKAsyEy5tYW50cmFlLnYxLlByb2ZpbGUSEwoLdG90YWxfY291bnQYAiABKAMyvAMKDlByb2ZpbGVTZXJ2aWNlElAKCkdldFByb2ZpbGUSHS5tYW50cmFlLnYxLkdldFByb2ZpbGVSZXF1ZXN0Gh4ubWFudHJhZS52MS5HZXRQcm9maWxlUmVzcG9uc2UiA5ACARJUCg1DcmVhdGVQcm9maWxlEiAubWFudHJhZS52MS5DcmVhdGVQcm9maWxlUmVxdWVzdBohLm1hbnRyYWUudjEuQ3JlYXRlUHJvZmlsZVJlc3BvbnNlElQKDVVwZGF0ZVByb2ZpbGUSIC5tYW50cmFlLnYxLlVwZGF0ZVByb2ZpbGVSZXF1ZXN0GiEubWFudHJhZS52MS5VcGRhdGVQcm9maWxlUmVzcG9uc2USVAoNRGVsZXRlUHJvZmlsZRIgLm1hbnRyYWUudjEuRGVsZXRlUHJvZmlsZVJlcXVlc3QaIS5tYW50cmFlLnYxLkRlbGV0ZVByb2ZpbGVSZXNwb25zZRJWCgxMaXN0UHJvZmlsZXMSHy5tYW50cmFlLnYxLkxpc3RQcm9maWxlc1JlcXVlc3QaIC5tYW50cmFlLnYxLkxpc3RQcm9maWxlc1Jlc3BvbnNlIgOQAgFCpgEKDmNvbS5tYW50cmFlLnYxQgxQcm9maWxlUHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.Profile
*/
export type Profile = Message<"mantrae.v1.Profile"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type Profile = Message<'mantrae.v1.Profile'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string description = 3;
*/
description: string;
/**
* @generated from field: string description = 3;
*/
description: string;
/**
* @generated from field: string token = 4;
*/
token: string;
/**
* @generated from field: string token = 4;
*/
token: string;
/**
* @generated from field: google.protobuf.Timestamp created_at = 5;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 5;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 6;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 6;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Profile.
* Use `create(ProfileSchema)` to create a new message.
*/
export const ProfileSchema: GenMessage<Profile> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 0);
export const ProfileSchema: GenMessage<Profile> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 0);
/**
* @generated from message mantrae.v1.GetProfileRequest
*/
export type GetProfileRequest = Message<"mantrae.v1.GetProfileRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetProfileRequest = Message<'mantrae.v1.GetProfileRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.GetProfileRequest.
* Use `create(GetProfileRequestSchema)` to create a new message.
*/
export const GetProfileRequestSchema: GenMessage<GetProfileRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 1);
export const GetProfileRequestSchema: GenMessage<GetProfileRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 1);
/**
* @generated from message mantrae.v1.GetProfileResponse
*/
export type GetProfileResponse = Message<"mantrae.v1.GetProfileResponse"> & {
/**
* @generated from field: mantrae.v1.Profile profile = 1;
*/
profile?: Profile;
export type GetProfileResponse = Message<'mantrae.v1.GetProfileResponse'> & {
/**
* @generated from field: mantrae.v1.Profile profile = 1;
*/
profile?: Profile;
};
/**
* Describes the message mantrae.v1.GetProfileResponse.
* Use `create(GetProfileResponseSchema)` to create a new message.
*/
export const GetProfileResponseSchema: GenMessage<GetProfileResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 2);
export const GetProfileResponseSchema: GenMessage<GetProfileResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 2);
/**
* @generated from message mantrae.v1.CreateProfileRequest
*/
export type CreateProfileRequest = Message<"mantrae.v1.CreateProfileRequest"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
export type CreateProfileRequest = Message<'mantrae.v1.CreateProfileRequest'> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: optional string description = 2;
*/
description?: string;
/**
* @generated from field: optional string description = 2;
*/
description?: string;
};
/**
* Describes the message mantrae.v1.CreateProfileRequest.
* Use `create(CreateProfileRequestSchema)` to create a new message.
*/
export const CreateProfileRequestSchema: GenMessage<CreateProfileRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 3);
export const CreateProfileRequestSchema: GenMessage<CreateProfileRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 3);
/**
* @generated from message mantrae.v1.CreateProfileResponse
*/
export type CreateProfileResponse = Message<"mantrae.v1.CreateProfileResponse"> & {
/**
* @generated from field: mantrae.v1.Profile profile = 1;
*/
profile?: Profile;
export type CreateProfileResponse = Message<'mantrae.v1.CreateProfileResponse'> & {
/**
* @generated from field: mantrae.v1.Profile profile = 1;
*/
profile?: Profile;
};
/**
* Describes the message mantrae.v1.CreateProfileResponse.
* Use `create(CreateProfileResponseSchema)` to create a new message.
*/
export const CreateProfileResponseSchema: GenMessage<CreateProfileResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 4);
export const CreateProfileResponseSchema: GenMessage<CreateProfileResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 4);
/**
* @generated from message mantrae.v1.UpdateProfileRequest
*/
export type UpdateProfileRequest = Message<"mantrae.v1.UpdateProfileRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateProfileRequest = Message<'mantrae.v1.UpdateProfileRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: optional string description = 3;
*/
description?: string;
/**
* @generated from field: optional string description = 3;
*/
description?: string;
/**
* @generated from field: optional bool regenerate_token = 4;
*/
regenerateToken?: boolean;
/**
* @generated from field: optional bool regenerate_token = 4;
*/
regenerateToken?: boolean;
};
/**
* Describes the message mantrae.v1.UpdateProfileRequest.
* Use `create(UpdateProfileRequestSchema)` to create a new message.
*/
export const UpdateProfileRequestSchema: GenMessage<UpdateProfileRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 5);
export const UpdateProfileRequestSchema: GenMessage<UpdateProfileRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 5);
/**
* @generated from message mantrae.v1.UpdateProfileResponse
*/
export type UpdateProfileResponse = Message<"mantrae.v1.UpdateProfileResponse"> & {
/**
* @generated from field: mantrae.v1.Profile profile = 1;
*/
profile?: Profile;
export type UpdateProfileResponse = Message<'mantrae.v1.UpdateProfileResponse'> & {
/**
* @generated from field: mantrae.v1.Profile profile = 1;
*/
profile?: Profile;
};
/**
* Describes the message mantrae.v1.UpdateProfileResponse.
* Use `create(UpdateProfileResponseSchema)` to create a new message.
*/
export const UpdateProfileResponseSchema: GenMessage<UpdateProfileResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 6);
export const UpdateProfileResponseSchema: GenMessage<UpdateProfileResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 6);
/**
* @generated from message mantrae.v1.DeleteProfileRequest
*/
export type DeleteProfileRequest = Message<"mantrae.v1.DeleteProfileRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteProfileRequest = Message<'mantrae.v1.DeleteProfileRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.DeleteProfileRequest.
* Use `create(DeleteProfileRequestSchema)` to create a new message.
*/
export const DeleteProfileRequestSchema: GenMessage<DeleteProfileRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 7);
export const DeleteProfileRequestSchema: GenMessage<DeleteProfileRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 7);
/**
* @generated from message mantrae.v1.DeleteProfileResponse
*/
export type DeleteProfileResponse = Message<"mantrae.v1.DeleteProfileResponse"> & {
};
export type DeleteProfileResponse = Message<'mantrae.v1.DeleteProfileResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteProfileResponse.
* Use `create(DeleteProfileResponseSchema)` to create a new message.
*/
export const DeleteProfileResponseSchema: GenMessage<DeleteProfileResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 8);
export const DeleteProfileResponseSchema: GenMessage<DeleteProfileResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 8);
/**
* @generated from message mantrae.v1.ListProfilesRequest
*/
export type ListProfilesRequest = Message<"mantrae.v1.ListProfilesRequest"> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
export type ListProfilesRequest = Message<'mantrae.v1.ListProfilesRequest'> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListProfilesRequest.
* Use `create(ListProfilesRequestSchema)` to create a new message.
*/
export const ListProfilesRequestSchema: GenMessage<ListProfilesRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 9);
export const ListProfilesRequestSchema: GenMessage<ListProfilesRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 9);
/**
* @generated from message mantrae.v1.ListProfilesResponse
*/
export type ListProfilesResponse = Message<"mantrae.v1.ListProfilesResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Profile profiles = 1;
*/
profiles: Profile[];
export type ListProfilesResponse = Message<'mantrae.v1.ListProfilesResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Profile profiles = 1;
*/
profiles: Profile[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListProfilesResponse.
* Use `create(ListProfilesResponseSchema)` to create a new message.
*/
export const ListProfilesResponseSchema: GenMessage<ListProfilesResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 10);
export const ListProfilesResponseSchema: GenMessage<ListProfilesResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_profile, 10);
/**
* @generated from service mantrae.v1.ProfileService
*/
export const ProfileService: GenService<{
/**
* @generated from rpc mantrae.v1.ProfileService.GetProfile
*/
getProfile: {
methodKind: "unary";
input: typeof GetProfileRequestSchema;
output: typeof GetProfileResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ProfileService.CreateProfile
*/
createProfile: {
methodKind: "unary";
input: typeof CreateProfileRequestSchema;
output: typeof CreateProfileResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ProfileService.UpdateProfile
*/
updateProfile: {
methodKind: "unary";
input: typeof UpdateProfileRequestSchema;
output: typeof UpdateProfileResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ProfileService.DeleteProfile
*/
deleteProfile: {
methodKind: "unary";
input: typeof DeleteProfileRequestSchema;
output: typeof DeleteProfileResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ProfileService.ListProfiles
*/
listProfiles: {
methodKind: "unary";
input: typeof ListProfilesRequestSchema;
output: typeof ListProfilesResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_profile, 0);
/**
* @generated from rpc mantrae.v1.ProfileService.GetProfile
*/
getProfile: {
methodKind: 'unary';
input: typeof GetProfileRequestSchema;
output: typeof GetProfileResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ProfileService.CreateProfile
*/
createProfile: {
methodKind: 'unary';
input: typeof CreateProfileRequestSchema;
output: typeof CreateProfileResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ProfileService.UpdateProfile
*/
updateProfile: {
methodKind: 'unary';
input: typeof UpdateProfileRequestSchema;
output: typeof UpdateProfileResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ProfileService.DeleteProfile
*/
deleteProfile: {
methodKind: 'unary';
input: typeof DeleteProfileRequestSchema;
output: typeof DeleteProfileResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ProfileService.ListProfiles
*/
listProfiles: {
methodKind: 'unary';
input: typeof ListProfilesRequestSchema;
output: typeof ListProfilesResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_profile, 0);

View File

@@ -2,43 +2,46 @@
// @generated from file mantrae/v1/protocol.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc } from "@bufbuild/protobuf/codegenv2";
import type { GenEnum, GenFile } from '@bufbuild/protobuf/codegenv2';
import { enumDesc, fileDesc } from '@bufbuild/protobuf/codegenv2';
/**
* Describes the file mantrae/v1/protocol.proto.
*/
export const file_mantrae_v1_protocol: GenFile = /*@__PURE__*/
fileDesc("ChltYW50cmFlL3YxL3Byb3RvY29sLnByb3RvEgptYW50cmFlLnYxKnMKDFByb3RvY29sVHlwZRIdChlQUk9UT0NPTF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSUFJPVE9DT0xfVFlQRV9IVFRQEAESFQoRUFJPVE9DT0xfVFlQRV9UQ1AQAhIVChFQUk9UT0NPTF9UWVBFX1VEUBADQqcBCg5jb20ubWFudHJhZS52MUINUHJvdG9jb2xQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw");
export const file_mantrae_v1_protocol: GenFile =
/*@__PURE__*/
fileDesc(
'ChltYW50cmFlL3YxL3Byb3RvY29sLnByb3RvEgptYW50cmFlLnYxKnMKDFByb3RvY29sVHlwZRIdChlQUk9UT0NPTF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSUFJPVE9DT0xfVFlQRV9IVFRQEAESFQoRUFJPVE9DT0xfVFlQRV9UQ1AQAhIVChFQUk9UT0NPTF9UWVBFX1VEUBADQqcBCg5jb20ubWFudHJhZS52MUINUHJvdG9jb2xQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw'
);
/**
* @generated from enum mantrae.v1.ProtocolType
*/
export enum ProtocolType {
/**
* @generated from enum value: PROTOCOL_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: PROTOCOL_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: PROTOCOL_TYPE_HTTP = 1;
*/
HTTP = 1,
/**
* @generated from enum value: PROTOCOL_TYPE_HTTP = 1;
*/
HTTP = 1,
/**
* @generated from enum value: PROTOCOL_TYPE_TCP = 2;
*/
TCP = 2,
/**
* @generated from enum value: PROTOCOL_TYPE_TCP = 2;
*/
TCP = 2,
/**
* @generated from enum value: PROTOCOL_TYPE_UDP = 3;
*/
UDP = 3,
/**
* @generated from enum value: PROTOCOL_TYPE_UDP = 3;
*/
UDP = 3
}
/**
* Describes the enum mantrae.v1.ProtocolType.
*/
export const ProtocolTypeSchema: GenEnum<ProtocolType> = /*@__PURE__*/
enumDesc(file_mantrae_v1_protocol, 0);
export const ProtocolTypeSchema: GenEnum<ProtocolType> =
/*@__PURE__*/
enumDesc(file_mantrae_v1_protocol, 0);

View File

@@ -2,380 +2,401 @@
// @generated from file mantrae/v1/router.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { DnsProvider } from "./dns_provider_pb";
import { file_mantrae_v1_dns_provider } from "./dns_provider_pb";
import type { ProtocolType } from "./protocol_pb";
import { file_mantrae_v1_protocol } from "./protocol_pb";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import {
file_google_protobuf_struct,
file_google_protobuf_timestamp
} from '@bufbuild/protobuf/wkt';
import type { DnsProvider } from './dns_provider_pb';
import { file_mantrae_v1_dns_provider } from './dns_provider_pb';
import type { ProtocolType } from './protocol_pb';
import { file_mantrae_v1_protocol } from './protocol_pb';
import type { JsonObject, Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/router.proto.
*/
export const file_mantrae_v1_router: GenFile = /*@__PURE__*/
fileDesc("ChdtYW50cmFlL3YxL3JvdXRlci5wcm90bxIKbWFudHJhZS52MSK6AgoGUm91dGVyEgoKAmlkGAEgASgDEhIKCnByb2ZpbGVfaWQYAiABKAMSEAoIYWdlbnRfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBiABKAgSJgoEdHlwZRgHIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlEi4KDWRuc19wcm92aWRlcnMYCCADKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlkKEEdldFJvdXRlclJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAASMAoEdHlwZRgCIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQASI3ChFHZXRSb3V0ZXJSZXNwb25zZRIiCgZyb3V0ZXIYASABKAsyEi5tYW50cmFlLnYxLlJvdXRlciLZAQoTQ3JlYXRlUm91dGVyUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEhUKCGFnZW50X2lkGAIgASgJSACIAQESFQoEbmFtZRgDIAEoCUIHukgEcgIQARInCgZjb25maWcYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBSABKAgSMAoEdHlwZRgGIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQAUILCglfYWdlbnRfaWQiOgoUQ3JlYXRlUm91dGVyUmVzcG9uc2USIgoGcm91dGVyGAEgASgLMhIubWFudHJhZS52MS5Sb3V0ZXIi3QEKE1VwZGF0ZVJvdXRlclJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAASFQoEbmFtZRgCIAEoCUIHukgEcgIQARIwCgR0eXBlGAMgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABEicKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgFIAEoCBIuCg1kbnNfcHJvdmlkZXJzGAYgAygLMhcubWFudHJhZS52MS5EbnNQcm92aWRlciI6ChRVcGRhdGVSb3V0ZXJSZXNwb25zZRIiCgZyb3V0ZXIYASABKAsyEi5tYW50cmFlLnYxLlJvdXRlciJcChNEZWxldGVSb3V0ZXJSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEjAKBHR5cGUYAiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAEiFgoURGVsZXRlUm91dGVyUmVzcG9uc2UiswIKEkxpc3RSb3V0ZXJzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEh4KCGFnZW50X2lkGAIgASgJQge6SARyAhABSACIAQESKwoEdHlwZRgDIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlSAGIAQESagoFbGltaXQYBCABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSAKIAQESHAoGb2Zmc2V0GAUgASgDQge6SAQiAigASAOIAQFCCwoJX2FnZW50X2lkQgcKBV90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0Ik8KE0xpc3RSb3V0ZXJzUmVzcG9uc2USIwoHcm91dGVycxgBIAMoCzISLm1hbnRyYWUudjEuUm91dGVyEhMKC3RvdGFsX2NvdW50GAIgASgDMqwDCg1Sb3V0ZXJTZXJ2aWNlEk0KCUdldFJvdXRlchIcLm1hbnRyYWUudjEuR2V0Um91dGVyUmVxdWVzdBodLm1hbnRyYWUudjEuR2V0Um91dGVyUmVzcG9uc2UiA5ACARJRCgxDcmVhdGVSb3V0ZXISHy5tYW50cmFlLnYxLkNyZWF0ZVJvdXRlclJlcXVlc3QaIC5tYW50cmFlLnYxLkNyZWF0ZVJvdXRlclJlc3BvbnNlElEKDFVwZGF0ZVJvdXRlchIfLm1hbnRyYWUudjEuVXBkYXRlUm91dGVyUmVxdWVzdBogLm1hbnRyYWUudjEuVXBkYXRlUm91dGVyUmVzcG9uc2USUQoMRGVsZXRlUm91dGVyEh8ubWFudHJhZS52MS5EZWxldGVSb3V0ZXJSZXF1ZXN0GiAubWFudHJhZS52MS5EZWxldGVSb3V0ZXJSZXNwb25zZRJTCgtMaXN0Um91dGVycxIeLm1hbnRyYWUudjEuTGlzdFJvdXRlcnNSZXF1ZXN0Gh8ubWFudHJhZS52MS5MaXN0Um91dGVyc1Jlc3BvbnNlIgOQAgFCpQEKDmNvbS5tYW50cmFlLnYxQgtSb3V0ZXJQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp, file_mantrae_v1_dns_provider, file_mantrae_v1_protocol]);
export const file_mantrae_v1_router: GenFile =
/*@__PURE__*/
fileDesc(
'ChdtYW50cmFlL3YxL3JvdXRlci5wcm90bxIKbWFudHJhZS52MSK6AgoGUm91dGVyEgoKAmlkGAEgASgDEhIKCnByb2ZpbGVfaWQYAiABKAMSEAoIYWdlbnRfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBiABKAgSJgoEdHlwZRgHIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlEi4KDWRuc19wcm92aWRlcnMYCCADKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVyEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlkKEEdldFJvdXRlclJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAASMAoEdHlwZRgCIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQASI3ChFHZXRSb3V0ZXJSZXNwb25zZRIiCgZyb3V0ZXIYASABKAsyEi5tYW50cmFlLnYxLlJvdXRlciLZAQoTQ3JlYXRlUm91dGVyUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEhUKCGFnZW50X2lkGAIgASgJSACIAQESFQoEbmFtZRgDIAEoCUIHukgEcgIQARInCgZjb25maWcYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBSABKAgSMAoEdHlwZRgGIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQAUILCglfYWdlbnRfaWQiOgoUQ3JlYXRlUm91dGVyUmVzcG9uc2USIgoGcm91dGVyGAEgASgLMhIubWFudHJhZS52MS5Sb3V0ZXIi3QEKE1VwZGF0ZVJvdXRlclJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAASFQoEbmFtZRgCIAEoCUIHukgEcgIQARIwCgR0eXBlGAMgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABEicKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgFIAEoCBIuCg1kbnNfcHJvdmlkZXJzGAYgAygLMhcubWFudHJhZS52MS5EbnNQcm92aWRlciI6ChRVcGRhdGVSb3V0ZXJSZXNwb25zZRIiCgZyb3V0ZXIYASABKAsyEi5tYW50cmFlLnYxLlJvdXRlciJcChNEZWxldGVSb3V0ZXJSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEjAKBHR5cGUYAiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAEiFgoURGVsZXRlUm91dGVyUmVzcG9uc2UiswIKEkxpc3RSb3V0ZXJzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEh4KCGFnZW50X2lkGAIgASgJQge6SARyAhABSACIAQESKwoEdHlwZRgDIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlSAGIAQESagoFbGltaXQYBCABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSAKIAQESHAoGb2Zmc2V0GAUgASgDQge6SAQiAigASAOIAQFCCwoJX2FnZW50X2lkQgcKBV90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0Ik8KE0xpc3RSb3V0ZXJzUmVzcG9uc2USIwoHcm91dGVycxgBIAMoCzISLm1hbnRyYWUudjEuUm91dGVyEhMKC3RvdGFsX2NvdW50GAIgASgDMqwDCg1Sb3V0ZXJTZXJ2aWNlEk0KCUdldFJvdXRlchIcLm1hbnRyYWUudjEuR2V0Um91dGVyUmVxdWVzdBodLm1hbnRyYWUudjEuR2V0Um91dGVyUmVzcG9uc2UiA5ACARJRCgxDcmVhdGVSb3V0ZXISHy5tYW50cmFlLnYxLkNyZWF0ZVJvdXRlclJlcXVlc3QaIC5tYW50cmFlLnYxLkNyZWF0ZVJvdXRlclJlc3BvbnNlElEKDFVwZGF0ZVJvdXRlchIfLm1hbnRyYWUudjEuVXBkYXRlUm91dGVyUmVxdWVzdBogLm1hbnRyYWUudjEuVXBkYXRlUm91dGVyUmVzcG9uc2USUQoMRGVsZXRlUm91dGVyEh8ubWFudHJhZS52MS5EZWxldGVSb3V0ZXJSZXF1ZXN0GiAubWFudHJhZS52MS5EZWxldGVSb3V0ZXJSZXNwb25zZRJTCgtMaXN0Um91dGVycxIeLm1hbnRyYWUudjEuTGlzdFJvdXRlcnNSZXF1ZXN0Gh8ubWFudHJhZS52MS5MaXN0Um91dGVyc1Jlc3BvbnNlIgOQAgFCpQEKDmNvbS5tYW50cmFlLnYxQgtSb3V0ZXJQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw',
[
file_buf_validate_validate,
file_google_protobuf_struct,
file_google_protobuf_timestamp,
file_mantrae_v1_dns_provider,
file_mantrae_v1_protocol
]
);
/**
* @generated from message mantrae.v1.Router
*/
export type Router = Message<"mantrae.v1.Router"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type Router = Message<'mantrae.v1.Router'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 5;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 5;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 6;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 6;
*/
enabled: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 7;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 7;
*/
type: ProtocolType;
/**
* @generated from field: repeated mantrae.v1.DnsProvider dns_providers = 8;
*/
dnsProviders: DnsProvider[];
/**
* @generated from field: repeated mantrae.v1.DnsProvider dns_providers = 8;
*/
dnsProviders: DnsProvider[];
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Router.
* Use `create(RouterSchema)` to create a new message.
*/
export const RouterSchema: GenMessage<Router> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 0);
export const RouterSchema: GenMessage<Router> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 0);
/**
* @generated from message mantrae.v1.GetRouterRequest
*/
export type GetRouterRequest = Message<"mantrae.v1.GetRouterRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetRouterRequest = Message<'mantrae.v1.GetRouterRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.GetRouterRequest.
* Use `create(GetRouterRequestSchema)` to create a new message.
*/
export const GetRouterRequestSchema: GenMessage<GetRouterRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 1);
export const GetRouterRequestSchema: GenMessage<GetRouterRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 1);
/**
* @generated from message mantrae.v1.GetRouterResponse
*/
export type GetRouterResponse = Message<"mantrae.v1.GetRouterResponse"> & {
/**
* @generated from field: mantrae.v1.Router router = 1;
*/
router?: Router;
export type GetRouterResponse = Message<'mantrae.v1.GetRouterResponse'> & {
/**
* @generated from field: mantrae.v1.Router router = 1;
*/
router?: Router;
};
/**
* Describes the message mantrae.v1.GetRouterResponse.
* Use `create(GetRouterResponseSchema)` to create a new message.
*/
export const GetRouterResponseSchema: GenMessage<GetRouterResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 2);
export const GetRouterResponseSchema: GenMessage<GetRouterResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 2);
/**
* @generated from message mantrae.v1.CreateRouterRequest
*/
export type CreateRouterRequest = Message<"mantrae.v1.CreateRouterRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type CreateRouterRequest = Message<'mantrae.v1.CreateRouterRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 6;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 6;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.CreateRouterRequest.
* Use `create(CreateRouterRequestSchema)` to create a new message.
*/
export const CreateRouterRequestSchema: GenMessage<CreateRouterRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 3);
export const CreateRouterRequestSchema: GenMessage<CreateRouterRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 3);
/**
* @generated from message mantrae.v1.CreateRouterResponse
*/
export type CreateRouterResponse = Message<"mantrae.v1.CreateRouterResponse"> & {
/**
* @generated from field: mantrae.v1.Router router = 1;
*/
router?: Router;
export type CreateRouterResponse = Message<'mantrae.v1.CreateRouterResponse'> & {
/**
* @generated from field: mantrae.v1.Router router = 1;
*/
router?: Router;
};
/**
* Describes the message mantrae.v1.CreateRouterResponse.
* Use `create(CreateRouterResponseSchema)` to create a new message.
*/
export const CreateRouterResponseSchema: GenMessage<CreateRouterResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 4);
export const CreateRouterResponseSchema: GenMessage<CreateRouterResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 4);
/**
* @generated from message mantrae.v1.UpdateRouterRequest
*/
export type UpdateRouterRequest = Message<"mantrae.v1.UpdateRouterRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateRouterRequest = Message<'mantrae.v1.UpdateRouterRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: mantrae.v1.ProtocolType type = 3;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 3;
*/
type: ProtocolType;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: repeated mantrae.v1.DnsProvider dns_providers = 6;
*/
dnsProviders: DnsProvider[];
/**
* @generated from field: repeated mantrae.v1.DnsProvider dns_providers = 6;
*/
dnsProviders: DnsProvider[];
};
/**
* Describes the message mantrae.v1.UpdateRouterRequest.
* Use `create(UpdateRouterRequestSchema)` to create a new message.
*/
export const UpdateRouterRequestSchema: GenMessage<UpdateRouterRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 5);
export const UpdateRouterRequestSchema: GenMessage<UpdateRouterRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 5);
/**
* @generated from message mantrae.v1.UpdateRouterResponse
*/
export type UpdateRouterResponse = Message<"mantrae.v1.UpdateRouterResponse"> & {
/**
* @generated from field: mantrae.v1.Router router = 1;
*/
router?: Router;
export type UpdateRouterResponse = Message<'mantrae.v1.UpdateRouterResponse'> & {
/**
* @generated from field: mantrae.v1.Router router = 1;
*/
router?: Router;
};
/**
* Describes the message mantrae.v1.UpdateRouterResponse.
* Use `create(UpdateRouterResponseSchema)` to create a new message.
*/
export const UpdateRouterResponseSchema: GenMessage<UpdateRouterResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 6);
export const UpdateRouterResponseSchema: GenMessage<UpdateRouterResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 6);
/**
* @generated from message mantrae.v1.DeleteRouterRequest
*/
export type DeleteRouterRequest = Message<"mantrae.v1.DeleteRouterRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteRouterRequest = Message<'mantrae.v1.DeleteRouterRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.DeleteRouterRequest.
* Use `create(DeleteRouterRequestSchema)` to create a new message.
*/
export const DeleteRouterRequestSchema: GenMessage<DeleteRouterRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 7);
export const DeleteRouterRequestSchema: GenMessage<DeleteRouterRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 7);
/**
* @generated from message mantrae.v1.DeleteRouterResponse
*/
export type DeleteRouterResponse = Message<"mantrae.v1.DeleteRouterResponse"> & {
};
export type DeleteRouterResponse = Message<'mantrae.v1.DeleteRouterResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteRouterResponse.
* Use `create(DeleteRouterResponseSchema)` to create a new message.
*/
export const DeleteRouterResponseSchema: GenMessage<DeleteRouterResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 8);
export const DeleteRouterResponseSchema: GenMessage<DeleteRouterResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 8);
/**
* @generated from message mantrae.v1.ListRoutersRequest
*/
export type ListRoutersRequest = Message<"mantrae.v1.ListRoutersRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListRoutersRequest = Message<'mantrae.v1.ListRoutersRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListRoutersRequest.
* Use `create(ListRoutersRequestSchema)` to create a new message.
*/
export const ListRoutersRequestSchema: GenMessage<ListRoutersRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 9);
export const ListRoutersRequestSchema: GenMessage<ListRoutersRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 9);
/**
* @generated from message mantrae.v1.ListRoutersResponse
*/
export type ListRoutersResponse = Message<"mantrae.v1.ListRoutersResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Router routers = 1;
*/
routers: Router[];
export type ListRoutersResponse = Message<'mantrae.v1.ListRoutersResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Router routers = 1;
*/
routers: Router[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListRoutersResponse.
* Use `create(ListRoutersResponseSchema)` to create a new message.
*/
export const ListRoutersResponseSchema: GenMessage<ListRoutersResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_router, 10);
export const ListRoutersResponseSchema: GenMessage<ListRoutersResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_router, 10);
/**
* @generated from service mantrae.v1.RouterService
*/
export const RouterService: GenService<{
/**
* @generated from rpc mantrae.v1.RouterService.GetRouter
*/
getRouter: {
methodKind: "unary";
input: typeof GetRouterRequestSchema;
output: typeof GetRouterResponseSchema;
},
/**
* @generated from rpc mantrae.v1.RouterService.CreateRouter
*/
createRouter: {
methodKind: "unary";
input: typeof CreateRouterRequestSchema;
output: typeof CreateRouterResponseSchema;
},
/**
* @generated from rpc mantrae.v1.RouterService.UpdateRouter
*/
updateRouter: {
methodKind: "unary";
input: typeof UpdateRouterRequestSchema;
output: typeof UpdateRouterResponseSchema;
},
/**
* @generated from rpc mantrae.v1.RouterService.DeleteRouter
*/
deleteRouter: {
methodKind: "unary";
input: typeof DeleteRouterRequestSchema;
output: typeof DeleteRouterResponseSchema;
},
/**
* @generated from rpc mantrae.v1.RouterService.ListRouters
*/
listRouters: {
methodKind: "unary";
input: typeof ListRoutersRequestSchema;
output: typeof ListRoutersResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_router, 0);
/**
* @generated from rpc mantrae.v1.RouterService.GetRouter
*/
getRouter: {
methodKind: 'unary';
input: typeof GetRouterRequestSchema;
output: typeof GetRouterResponseSchema;
};
/**
* @generated from rpc mantrae.v1.RouterService.CreateRouter
*/
createRouter: {
methodKind: 'unary';
input: typeof CreateRouterRequestSchema;
output: typeof CreateRouterResponseSchema;
};
/**
* @generated from rpc mantrae.v1.RouterService.UpdateRouter
*/
updateRouter: {
methodKind: 'unary';
input: typeof UpdateRouterRequestSchema;
output: typeof UpdateRouterResponseSchema;
};
/**
* @generated from rpc mantrae.v1.RouterService.DeleteRouter
*/
deleteRouter: {
methodKind: 'unary';
input: typeof DeleteRouterRequestSchema;
output: typeof DeleteRouterResponseSchema;
};
/**
* @generated from rpc mantrae.v1.RouterService.ListRouters
*/
listRouters: {
methodKind: 'unary';
input: typeof ListRoutersRequestSchema;
output: typeof ListRoutersResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_router, 0);

View File

@@ -2,368 +2,391 @@
// @generated from file mantrae/v1/servers_transport.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { ProtocolType } from "./protocol_pb";
import { file_mantrae_v1_protocol } from "./protocol_pb";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import {
file_google_protobuf_struct,
file_google_protobuf_timestamp
} from '@bufbuild/protobuf/wkt';
import type { ProtocolType } from './protocol_pb';
import { file_mantrae_v1_protocol } from './protocol_pb';
import type { JsonObject, Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/servers_transport.proto.
*/
export const file_mantrae_v1_servers_transport: GenFile = /*@__PURE__*/
fileDesc("CiJtYW50cmFlL3YxL3NlcnZlcnNfdHJhbnNwb3J0LnByb3RvEgptYW50cmFlLnYxIpQCChBTZXJ2ZXJzVHJhbnNwb3J0EgoKAmlkGAEgASgDEhIKCnByb2ZpbGVfaWQYAiABKAMSEAoIYWdlbnRfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBiABKAgSJgoEdHlwZRgHIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wImMKGkdldFNlcnZlcnNUcmFuc3BvcnRSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEjAKBHR5cGUYAiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAEiVgobR2V0U2VydmVyc1RyYW5zcG9ydFJlc3BvbnNlEjcKEXNlcnZlcnNfdHJhbnNwb3J0GAEgASgLMhwubWFudHJhZS52MS5TZXJ2ZXJzVHJhbnNwb3J0IuMBCh1DcmVhdGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEhUKCGFnZW50X2lkGAIgASgJSACIAQESFQoEbmFtZRgDIAEoCUIHukgEcgIQARInCgZjb25maWcYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBSABKAgSMAoEdHlwZRgGIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQAUILCglfYWdlbnRfaWQiWQoeQ3JlYXRlU2VydmVyc1RyYW5zcG9ydFJlc3BvbnNlEjcKEXNlcnZlcnNfdHJhbnNwb3J0GAEgASgLMhwubWFudHJhZS52MS5TZXJ2ZXJzVHJhbnNwb3J0IrcBCh1VcGRhdGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEicKBmNvbmZpZxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgEIAEoCBIwCgR0eXBlGAUgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABIlkKHlVwZGF0ZVNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZRI3ChFzZXJ2ZXJzX3RyYW5zcG9ydBgBIAEoCzIcLm1hbnRyYWUudjEuU2VydmVyc1RyYW5zcG9ydCJmCh1EZWxldGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIwCgR0eXBlGAIgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABIiAKHkRlbGV0ZVNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZSK9AgocTGlzdFNlcnZlcnNUcmFuc3BvcnRzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEh4KCGFnZW50X2lkGAIgASgJQge6SARyAhABSACIAQESKwoEdHlwZRgDIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlSAGIAQESagoFbGltaXQYBCABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSAKIAQESHAoGb2Zmc2V0GAUgASgDQge6SAQiAigASAOIAQFCCwoJX2FnZW50X2lkQgcKBV90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0Im4KHUxpc3RTZXJ2ZXJzVHJhbnNwb3J0c1Jlc3BvbnNlEjgKEnNlcnZlcnNfdHJhbnNwb3J0cxgBIAMoCzIcLm1hbnRyYWUudjEuU2VydmVyc1RyYW5zcG9ydBITCgt0b3RhbF9jb3VudBgCIAEoAzLMBAoXU2VydmVyc1RyYW5zcG9ydFNlcnZpY2USawoTR2V0U2VydmVyc1RyYW5zcG9ydBImLm1hbnRyYWUudjEuR2V0U2VydmVyc1RyYW5zcG9ydFJlcXVlc3QaJy5tYW50cmFlLnYxLkdldFNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZSIDkAIBEm8KFkNyZWF0ZVNlcnZlcnNUcmFuc3BvcnQSKS5tYW50cmFlLnYxLkNyZWF0ZVNlcnZlcnNUcmFuc3BvcnRSZXF1ZXN0GioubWFudHJhZS52MS5DcmVhdGVTZXJ2ZXJzVHJhbnNwb3J0UmVzcG9uc2USbwoWVXBkYXRlU2VydmVyc1RyYW5zcG9ydBIpLm1hbnRyYWUudjEuVXBkYXRlU2VydmVyc1RyYW5zcG9ydFJlcXVlc3QaKi5tYW50cmFlLnYxLlVwZGF0ZVNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZRJvChZEZWxldGVTZXJ2ZXJzVHJhbnNwb3J0EikubWFudHJhZS52MS5EZWxldGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBoqLm1hbnRyYWUudjEuRGVsZXRlU2VydmVyc1RyYW5zcG9ydFJlc3BvbnNlEnEKFUxpc3RTZXJ2ZXJzVHJhbnNwb3J0cxIoLm1hbnRyYWUudjEuTGlzdFNlcnZlcnNUcmFuc3BvcnRzUmVxdWVzdBopLm1hbnRyYWUudjEuTGlzdFNlcnZlcnNUcmFuc3BvcnRzUmVzcG9uc2UiA5ACAUKvAQoOY29tLm1hbnRyYWUudjFCFVNlcnZlcnNUcmFuc3BvcnRQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp, file_mantrae_v1_protocol]);
export const file_mantrae_v1_servers_transport: GenFile =
/*@__PURE__*/
fileDesc(
'CiJtYW50cmFlL3YxL3NlcnZlcnNfdHJhbnNwb3J0LnByb3RvEgptYW50cmFlLnYxIpQCChBTZXJ2ZXJzVHJhbnNwb3J0EgoKAmlkGAEgASgDEhIKCnByb2ZpbGVfaWQYAiABKAMSEAoIYWdlbnRfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBiABKAgSJgoEdHlwZRgHIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wImMKGkdldFNlcnZlcnNUcmFuc3BvcnRSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEjAKBHR5cGUYAiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAEiVgobR2V0U2VydmVyc1RyYW5zcG9ydFJlc3BvbnNlEjcKEXNlcnZlcnNfdHJhbnNwb3J0GAEgASgLMhwubWFudHJhZS52MS5TZXJ2ZXJzVHJhbnNwb3J0IuMBCh1DcmVhdGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEhUKCGFnZW50X2lkGAIgASgJSACIAQESFQoEbmFtZRgDIAEoCUIHukgEcgIQARInCgZjb25maWcYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBSABKAgSMAoEdHlwZRgGIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQAUILCglfYWdlbnRfaWQiWQoeQ3JlYXRlU2VydmVyc1RyYW5zcG9ydFJlc3BvbnNlEjcKEXNlcnZlcnNfdHJhbnNwb3J0GAEgASgLMhwubWFudHJhZS52MS5TZXJ2ZXJzVHJhbnNwb3J0IrcBCh1VcGRhdGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEicKBmNvbmZpZxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgEIAEoCBIwCgR0eXBlGAUgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABIlkKHlVwZGF0ZVNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZRI3ChFzZXJ2ZXJzX3RyYW5zcG9ydBgBIAEoCzIcLm1hbnRyYWUudjEuU2VydmVyc1RyYW5zcG9ydCJmCh1EZWxldGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIwCgR0eXBlGAIgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABIiAKHkRlbGV0ZVNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZSK9AgocTGlzdFNlcnZlcnNUcmFuc3BvcnRzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEh4KCGFnZW50X2lkGAIgASgJQge6SARyAhABSACIAQESKwoEdHlwZRgDIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlSAGIAQESagoFbGltaXQYBCABKANCVrpIU7oBUAoLbGltaXQudmFsaWQSKWxpbWl0IG11c3QgYmUgZWl0aGVyIC0xIG9yIGdyZWF0ZXIgdGhhbiAwGhZ0aGlzID09IC0xIHx8IHRoaXMgPiAwSAKIAQESHAoGb2Zmc2V0GAUgASgDQge6SAQiAigASAOIAQFCCwoJX2FnZW50X2lkQgcKBV90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0Im4KHUxpc3RTZXJ2ZXJzVHJhbnNwb3J0c1Jlc3BvbnNlEjgKEnNlcnZlcnNfdHJhbnNwb3J0cxgBIAMoCzIcLm1hbnRyYWUudjEuU2VydmVyc1RyYW5zcG9ydBITCgt0b3RhbF9jb3VudBgCIAEoAzLMBAoXU2VydmVyc1RyYW5zcG9ydFNlcnZpY2USawoTR2V0U2VydmVyc1RyYW5zcG9ydBImLm1hbnRyYWUudjEuR2V0U2VydmVyc1RyYW5zcG9ydFJlcXVlc3QaJy5tYW50cmFlLnYxLkdldFNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZSIDkAIBEm8KFkNyZWF0ZVNlcnZlcnNUcmFuc3BvcnQSKS5tYW50cmFlLnYxLkNyZWF0ZVNlcnZlcnNUcmFuc3BvcnRSZXF1ZXN0GioubWFudHJhZS52MS5DcmVhdGVTZXJ2ZXJzVHJhbnNwb3J0UmVzcG9uc2USbwoWVXBkYXRlU2VydmVyc1RyYW5zcG9ydBIpLm1hbnRyYWUudjEuVXBkYXRlU2VydmVyc1RyYW5zcG9ydFJlcXVlc3QaKi5tYW50cmFlLnYxLlVwZGF0ZVNlcnZlcnNUcmFuc3BvcnRSZXNwb25zZRJvChZEZWxldGVTZXJ2ZXJzVHJhbnNwb3J0EikubWFudHJhZS52MS5EZWxldGVTZXJ2ZXJzVHJhbnNwb3J0UmVxdWVzdBoqLm1hbnRyYWUudjEuRGVsZXRlU2VydmVyc1RyYW5zcG9ydFJlc3BvbnNlEnEKFUxpc3RTZXJ2ZXJzVHJhbnNwb3J0cxIoLm1hbnRyYWUudjEuTGlzdFNlcnZlcnNUcmFuc3BvcnRzUmVxdWVzdBopLm1hbnRyYWUudjEuTGlzdFNlcnZlcnNUcmFuc3BvcnRzUmVzcG9uc2UiA5ACAUKvAQoOY29tLm1hbnRyYWUudjFCFVNlcnZlcnNUcmFuc3BvcnRQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw',
[
file_buf_validate_validate,
file_google_protobuf_struct,
file_google_protobuf_timestamp,
file_mantrae_v1_protocol
]
);
/**
* @generated from message mantrae.v1.ServersTransport
*/
export type ServersTransport = Message<"mantrae.v1.ServersTransport"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type ServersTransport = Message<'mantrae.v1.ServersTransport'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 5;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 5;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 6;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 6;
*/
enabled: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 7;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 7;
*/
type: ProtocolType;
/**
* @generated from field: google.protobuf.Timestamp created_at = 8;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 8;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 9;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 9;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.ServersTransport.
* Use `create(ServersTransportSchema)` to create a new message.
*/
export const ServersTransportSchema: GenMessage<ServersTransport> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 0);
export const ServersTransportSchema: GenMessage<ServersTransport> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 0);
/**
* @generated from message mantrae.v1.GetServersTransportRequest
*/
export type GetServersTransportRequest = Message<"mantrae.v1.GetServersTransportRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetServersTransportRequest = Message<'mantrae.v1.GetServersTransportRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.GetServersTransportRequest.
* Use `create(GetServersTransportRequestSchema)` to create a new message.
*/
export const GetServersTransportRequestSchema: GenMessage<GetServersTransportRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 1);
export const GetServersTransportRequestSchema: GenMessage<GetServersTransportRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 1);
/**
* @generated from message mantrae.v1.GetServersTransportResponse
*/
export type GetServersTransportResponse = Message<"mantrae.v1.GetServersTransportResponse"> & {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 1;
*/
serversTransport?: ServersTransport;
export type GetServersTransportResponse = Message<'mantrae.v1.GetServersTransportResponse'> & {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 1;
*/
serversTransport?: ServersTransport;
};
/**
* Describes the message mantrae.v1.GetServersTransportResponse.
* Use `create(GetServersTransportResponseSchema)` to create a new message.
*/
export const GetServersTransportResponseSchema: GenMessage<GetServersTransportResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 2);
export const GetServersTransportResponseSchema: GenMessage<GetServersTransportResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 2);
/**
* @generated from message mantrae.v1.CreateServersTransportRequest
*/
export type CreateServersTransportRequest = Message<"mantrae.v1.CreateServersTransportRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type CreateServersTransportRequest = Message<'mantrae.v1.CreateServersTransportRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 6;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 6;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.CreateServersTransportRequest.
* Use `create(CreateServersTransportRequestSchema)` to create a new message.
*/
export const CreateServersTransportRequestSchema: GenMessage<CreateServersTransportRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 3);
export const CreateServersTransportRequestSchema: GenMessage<CreateServersTransportRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 3);
/**
* @generated from message mantrae.v1.CreateServersTransportResponse
*/
export type CreateServersTransportResponse = Message<"mantrae.v1.CreateServersTransportResponse"> & {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 1;
*/
serversTransport?: ServersTransport;
};
export type CreateServersTransportResponse =
Message<'mantrae.v1.CreateServersTransportResponse'> & {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 1;
*/
serversTransport?: ServersTransport;
};
/**
* Describes the message mantrae.v1.CreateServersTransportResponse.
* Use `create(CreateServersTransportResponseSchema)` to create a new message.
*/
export const CreateServersTransportResponseSchema: GenMessage<CreateServersTransportResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 4);
export const CreateServersTransportResponseSchema: GenMessage<CreateServersTransportResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 4);
/**
* @generated from message mantrae.v1.UpdateServersTransportRequest
*/
export type UpdateServersTransportRequest = Message<"mantrae.v1.UpdateServersTransportRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateServersTransportRequest = Message<'mantrae.v1.UpdateServersTransportRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 3;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 3;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 4;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 4;
*/
enabled: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 5;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 5;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.UpdateServersTransportRequest.
* Use `create(UpdateServersTransportRequestSchema)` to create a new message.
*/
export const UpdateServersTransportRequestSchema: GenMessage<UpdateServersTransportRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 5);
export const UpdateServersTransportRequestSchema: GenMessage<UpdateServersTransportRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 5);
/**
* @generated from message mantrae.v1.UpdateServersTransportResponse
*/
export type UpdateServersTransportResponse = Message<"mantrae.v1.UpdateServersTransportResponse"> & {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 1;
*/
serversTransport?: ServersTransport;
};
export type UpdateServersTransportResponse =
Message<'mantrae.v1.UpdateServersTransportResponse'> & {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 1;
*/
serversTransport?: ServersTransport;
};
/**
* Describes the message mantrae.v1.UpdateServersTransportResponse.
* Use `create(UpdateServersTransportResponseSchema)` to create a new message.
*/
export const UpdateServersTransportResponseSchema: GenMessage<UpdateServersTransportResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 6);
export const UpdateServersTransportResponseSchema: GenMessage<UpdateServersTransportResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 6);
/**
* @generated from message mantrae.v1.DeleteServersTransportRequest
*/
export type DeleteServersTransportRequest = Message<"mantrae.v1.DeleteServersTransportRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteServersTransportRequest = Message<'mantrae.v1.DeleteServersTransportRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.DeleteServersTransportRequest.
* Use `create(DeleteServersTransportRequestSchema)` to create a new message.
*/
export const DeleteServersTransportRequestSchema: GenMessage<DeleteServersTransportRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 7);
export const DeleteServersTransportRequestSchema: GenMessage<DeleteServersTransportRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 7);
/**
* @generated from message mantrae.v1.DeleteServersTransportResponse
*/
export type DeleteServersTransportResponse = Message<"mantrae.v1.DeleteServersTransportResponse"> & {
};
export type DeleteServersTransportResponse =
Message<'mantrae.v1.DeleteServersTransportResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteServersTransportResponse.
* Use `create(DeleteServersTransportResponseSchema)` to create a new message.
*/
export const DeleteServersTransportResponseSchema: GenMessage<DeleteServersTransportResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 8);
export const DeleteServersTransportResponseSchema: GenMessage<DeleteServersTransportResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 8);
/**
* @generated from message mantrae.v1.ListServersTransportsRequest
*/
export type ListServersTransportsRequest = Message<"mantrae.v1.ListServersTransportsRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListServersTransportsRequest = Message<'mantrae.v1.ListServersTransportsRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListServersTransportsRequest.
* Use `create(ListServersTransportsRequestSchema)` to create a new message.
*/
export const ListServersTransportsRequestSchema: GenMessage<ListServersTransportsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 9);
export const ListServersTransportsRequestSchema: GenMessage<ListServersTransportsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 9);
/**
* @generated from message mantrae.v1.ListServersTransportsResponse
*/
export type ListServersTransportsResponse = Message<"mantrae.v1.ListServersTransportsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.ServersTransport servers_transports = 1;
*/
serversTransports: ServersTransport[];
export type ListServersTransportsResponse = Message<'mantrae.v1.ListServersTransportsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.ServersTransport servers_transports = 1;
*/
serversTransports: ServersTransport[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListServersTransportsResponse.
* Use `create(ListServersTransportsResponseSchema)` to create a new message.
*/
export const ListServersTransportsResponseSchema: GenMessage<ListServersTransportsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 10);
export const ListServersTransportsResponseSchema: GenMessage<ListServersTransportsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_servers_transport, 10);
/**
* @generated from service mantrae.v1.ServersTransportService
*/
export const ServersTransportService: GenService<{
/**
* @generated from rpc mantrae.v1.ServersTransportService.GetServersTransport
*/
getServersTransport: {
methodKind: "unary";
input: typeof GetServersTransportRequestSchema;
output: typeof GetServersTransportResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServersTransportService.CreateServersTransport
*/
createServersTransport: {
methodKind: "unary";
input: typeof CreateServersTransportRequestSchema;
output: typeof CreateServersTransportResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServersTransportService.UpdateServersTransport
*/
updateServersTransport: {
methodKind: "unary";
input: typeof UpdateServersTransportRequestSchema;
output: typeof UpdateServersTransportResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServersTransportService.DeleteServersTransport
*/
deleteServersTransport: {
methodKind: "unary";
input: typeof DeleteServersTransportRequestSchema;
output: typeof DeleteServersTransportResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServersTransportService.ListServersTransports
*/
listServersTransports: {
methodKind: "unary";
input: typeof ListServersTransportsRequestSchema;
output: typeof ListServersTransportsResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_servers_transport, 0);
/**
* @generated from rpc mantrae.v1.ServersTransportService.GetServersTransport
*/
getServersTransport: {
methodKind: 'unary';
input: typeof GetServersTransportRequestSchema;
output: typeof GetServersTransportResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServersTransportService.CreateServersTransport
*/
createServersTransport: {
methodKind: 'unary';
input: typeof CreateServersTransportRequestSchema;
output: typeof CreateServersTransportResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServersTransportService.UpdateServersTransport
*/
updateServersTransport: {
methodKind: 'unary';
input: typeof UpdateServersTransportRequestSchema;
output: typeof UpdateServersTransportResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServersTransportService.DeleteServersTransport
*/
deleteServersTransport: {
methodKind: 'unary';
input: typeof DeleteServersTransportRequestSchema;
output: typeof DeleteServersTransportResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServersTransportService.ListServersTransports
*/
listServersTransports: {
methodKind: 'unary';
input: typeof ListServersTransportsRequestSchema;
output: typeof ListServersTransportsResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_servers_transport, 0);

View File

@@ -2,385 +2,408 @@
// @generated from file mantrae/v1/service.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { ProtocolType } from "./protocol_pb";
import { file_mantrae_v1_protocol } from "./protocol_pb";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import {
file_google_protobuf_struct,
file_google_protobuf_timestamp
} from '@bufbuild/protobuf/wkt';
import type { ProtocolType } from './protocol_pb';
import { file_mantrae_v1_protocol } from './protocol_pb';
import type { JsonObject, Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/service.proto.
*/
export const file_mantrae_v1_service: GenFile = /*@__PURE__*/
fileDesc("ChhtYW50cmFlL3YxL3NlcnZpY2UucHJvdG8SCm1hbnRyYWUudjEiiwIKB1NlcnZpY2USCgoCaWQYASABKAMSEgoKcHJvZmlsZV9pZBgCIAEoAxIQCghhZ2VudF9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEg8KB2VuYWJsZWQYBSABKAgSJwoGY29uZmlnGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCgR0eXBlGAcgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGUSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipwEKEUdldFNlcnZpY2VSZXF1ZXN0EhsKCnByb2ZpbGVfaWQYASABKANCB7pIBCICIAASMAoEdHlwZRgCIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQARIVCgJpZBgDIAEoA0IHukgEIgIgAEgAEhcKBG5hbWUYBCABKAlCB7pIBHICEAFIAEITCgppZGVudGlmaWVyEgW6SAIIASI6ChJHZXRTZXJ2aWNlUmVzcG9uc2USJAoHc2VydmljZRgBIAEoCzITLm1hbnRyYWUudjEuU2VydmljZSLaAQoUQ3JlYXRlU2VydmljZVJlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABIVCghhZ2VudF9pZBgCIAEoCUgAiAEBEhUKBG5hbWUYAyABKAlCB7pIBHICEAESJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAUgASgIEjAKBHR5cGUYBiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAFCCwoJX2FnZW50X2lkIj0KFUNyZWF0ZVNlcnZpY2VSZXNwb25zZRIkCgdzZXJ2aWNlGAEgASgLMhMubWFudHJhZS52MS5TZXJ2aWNlIq4BChRVcGRhdGVTZXJ2aWNlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEg8KB2VuYWJsZWQYAyABKAgSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIwCgR0eXBlGAUgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABIj0KFVVwZGF0ZVNlcnZpY2VSZXNwb25zZRIkCgdzZXJ2aWNlGAEgASgLMhMubWFudHJhZS52MS5TZXJ2aWNlIl0KFERlbGV0ZVNlcnZpY2VSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEjAKBHR5cGUYAiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAEiFwoVRGVsZXRlU2VydmljZVJlc3BvbnNlIrQCChNMaXN0U2VydmljZXNSZXF1ZXN0EhsKCnByb2ZpbGVfaWQYASABKANCB7pIBCICIAASHgoIYWdlbnRfaWQYAiABKAlCB7pIBHICEAFIAIgBARIrCgR0eXBlGAMgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVIAYgBARJqCgVsaW1pdBgEIAEoA0JWukhTugFQCgtsaW1pdC52YWxpZBIpbGltaXQgbXVzdCBiZSBlaXRoZXIgLTEgb3IgZ3JlYXRlciB0aGFuIDAaFnRoaXMgPT0gLTEgfHwgdGhpcyA+IDBIAogBARIcCgZvZmZzZXQYBSABKANCB7pIBCICKABIA4gBAUILCglfYWdlbnRfaWRCBwoFX3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXQiUgoUTGlzdFNlcnZpY2VzUmVzcG9uc2USJQoIc2VydmljZXMYASADKAsyEy5tYW50cmFlLnYxLlNlcnZpY2USEwoLdG90YWxfY291bnQYAiABKAMyvAMKDlNlcnZpY2VTZXJ2aWNlElAKCkdldFNlcnZpY2USHS5tYW50cmFlLnYxLkdldFNlcnZpY2VSZXF1ZXN0Gh4ubWFudHJhZS52MS5HZXRTZXJ2aWNlUmVzcG9uc2UiA5ACARJUCg1DcmVhdGVTZXJ2aWNlEiAubWFudHJhZS52MS5DcmVhdGVTZXJ2aWNlUmVxdWVzdBohLm1hbnRyYWUudjEuQ3JlYXRlU2VydmljZVJlc3BvbnNlElQKDVVwZGF0ZVNlcnZpY2USIC5tYW50cmFlLnYxLlVwZGF0ZVNlcnZpY2VSZXF1ZXN0GiEubWFudHJhZS52MS5VcGRhdGVTZXJ2aWNlUmVzcG9uc2USVAoNRGVsZXRlU2VydmljZRIgLm1hbnRyYWUudjEuRGVsZXRlU2VydmljZVJlcXVlc3QaIS5tYW50cmFlLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZRJWCgxMaXN0U2VydmljZXMSHy5tYW50cmFlLnYxLkxpc3RTZXJ2aWNlc1JlcXVlc3QaIC5tYW50cmFlLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIgOQAgFCpgEKDmNvbS5tYW50cmFlLnYxQgxTZXJ2aWNlUHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp, file_mantrae_v1_protocol]);
export const file_mantrae_v1_service: GenFile =
/*@__PURE__*/
fileDesc(
'ChhtYW50cmFlL3YxL3NlcnZpY2UucHJvdG8SCm1hbnRyYWUudjEiiwIKB1NlcnZpY2USCgoCaWQYASABKAMSEgoKcHJvZmlsZV9pZBgCIAEoAxIQCghhZ2VudF9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEg8KB2VuYWJsZWQYBSABKAgSJwoGY29uZmlnGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCgR0eXBlGAcgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGUSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipwEKEUdldFNlcnZpY2VSZXF1ZXN0EhsKCnByb2ZpbGVfaWQYASABKANCB7pIBCICIAASMAoEdHlwZRgCIAEoDjIYLm1hbnRyYWUudjEuUHJvdG9jb2xUeXBlQgi6SAWCAQIQARIVCgJpZBgDIAEoA0IHukgEIgIgAEgAEhcKBG5hbWUYBCABKAlCB7pIBHICEAFIAEITCgppZGVudGlmaWVyEgW6SAIIASI6ChJHZXRTZXJ2aWNlUmVzcG9uc2USJAoHc2VydmljZRgBIAEoCzITLm1hbnRyYWUudjEuU2VydmljZSLaAQoUQ3JlYXRlU2VydmljZVJlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABIVCghhZ2VudF9pZBgCIAEoCUgAiAEBEhUKBG5hbWUYAyABKAlCB7pIBHICEAESJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAUgASgIEjAKBHR5cGUYBiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAFCCwoJX2FnZW50X2lkIj0KFUNyZWF0ZVNlcnZpY2VSZXNwb25zZRIkCgdzZXJ2aWNlGAEgASgLMhMubWFudHJhZS52MS5TZXJ2aWNlIq4BChRVcGRhdGVTZXJ2aWNlUmVxdWVzdBITCgJpZBgBIAEoA0IHukgEIgIgABIVCgRuYW1lGAIgASgJQge6SARyAhABEg8KB2VuYWJsZWQYAyABKAgSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIwCgR0eXBlGAUgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVCCLpIBYIBAhABIj0KFVVwZGF0ZVNlcnZpY2VSZXNwb25zZRIkCgdzZXJ2aWNlGAEgASgLMhMubWFudHJhZS52MS5TZXJ2aWNlIl0KFERlbGV0ZVNlcnZpY2VSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAEjAKBHR5cGUYAiABKA4yGC5tYW50cmFlLnYxLlByb3RvY29sVHlwZUIIukgFggECEAEiFwoVRGVsZXRlU2VydmljZVJlc3BvbnNlIrQCChNMaXN0U2VydmljZXNSZXF1ZXN0EhsKCnByb2ZpbGVfaWQYASABKANCB7pIBCICIAASHgoIYWdlbnRfaWQYAiABKAlCB7pIBHICEAFIAIgBARIrCgR0eXBlGAMgASgOMhgubWFudHJhZS52MS5Qcm90b2NvbFR5cGVIAYgBARJqCgVsaW1pdBgEIAEoA0JWukhTugFQCgtsaW1pdC52YWxpZBIpbGltaXQgbXVzdCBiZSBlaXRoZXIgLTEgb3IgZ3JlYXRlciB0aGFuIDAaFnRoaXMgPT0gLTEgfHwgdGhpcyA+IDBIAogBARIcCgZvZmZzZXQYBSABKANCB7pIBCICKABIA4gBAUILCglfYWdlbnRfaWRCBwoFX3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXQiUgoUTGlzdFNlcnZpY2VzUmVzcG9uc2USJQoIc2VydmljZXMYASADKAsyEy5tYW50cmFlLnYxLlNlcnZpY2USEwoLdG90YWxfY291bnQYAiABKAMyvAMKDlNlcnZpY2VTZXJ2aWNlElAKCkdldFNlcnZpY2USHS5tYW50cmFlLnYxLkdldFNlcnZpY2VSZXF1ZXN0Gh4ubWFudHJhZS52MS5HZXRTZXJ2aWNlUmVzcG9uc2UiA5ACARJUCg1DcmVhdGVTZXJ2aWNlEiAubWFudHJhZS52MS5DcmVhdGVTZXJ2aWNlUmVxdWVzdBohLm1hbnRyYWUudjEuQ3JlYXRlU2VydmljZVJlc3BvbnNlElQKDVVwZGF0ZVNlcnZpY2USIC5tYW50cmFlLnYxLlVwZGF0ZVNlcnZpY2VSZXF1ZXN0GiEubWFudHJhZS52MS5VcGRhdGVTZXJ2aWNlUmVzcG9uc2USVAoNRGVsZXRlU2VydmljZRIgLm1hbnRyYWUudjEuRGVsZXRlU2VydmljZVJlcXVlc3QaIS5tYW50cmFlLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZRJWCgxMaXN0U2VydmljZXMSHy5tYW50cmFlLnYxLkxpc3RTZXJ2aWNlc1JlcXVlc3QaIC5tYW50cmFlLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIgOQAgFCpgEKDmNvbS5tYW50cmFlLnYxQgxTZXJ2aWNlUHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM',
[
file_buf_validate_validate,
file_google_protobuf_struct,
file_google_protobuf_timestamp,
file_mantrae_v1_protocol
]
);
/**
* @generated from message mantrae.v1.Service
*/
export type Service = Message<"mantrae.v1.Service"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type Service = Message<'mantrae.v1.Service'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: string name = 4;
*/
name: string;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: google.protobuf.Struct config = 6;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 6;
*/
config?: JsonObject;
/**
* @generated from field: mantrae.v1.ProtocolType type = 7;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 7;
*/
type: ProtocolType;
/**
* @generated from field: google.protobuf.Timestamp created_at = 8;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 8;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 9;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 9;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Service.
* Use `create(ServiceSchema)` to create a new message.
*/
export const ServiceSchema: GenMessage<Service> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 0);
export const ServiceSchema: GenMessage<Service> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 0);
/**
* @generated from message mantrae.v1.GetServiceRequest
*/
export type GetServiceRequest = Message<"mantrae.v1.GetServiceRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type GetServiceRequest = Message<'mantrae.v1.GetServiceRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from oneof mantrae.v1.GetServiceRequest.identifier
*/
identifier: {
/**
* @generated from field: int64 id = 3;
*/
value: bigint;
case: "id";
} | {
/**
* @generated from field: string name = 4;
*/
value: string;
case: "name";
} | { case: undefined; value?: undefined };
/**
* @generated from oneof mantrae.v1.GetServiceRequest.identifier
*/
identifier:
| {
/**
* @generated from field: int64 id = 3;
*/
value: bigint;
case: 'id';
}
| {
/**
* @generated from field: string name = 4;
*/
value: string;
case: 'name';
}
| { case: undefined; value?: undefined };
};
/**
* Describes the message mantrae.v1.GetServiceRequest.
* Use `create(GetServiceRequestSchema)` to create a new message.
*/
export const GetServiceRequestSchema: GenMessage<GetServiceRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 1);
export const GetServiceRequestSchema: GenMessage<GetServiceRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 1);
/**
* @generated from message mantrae.v1.GetServiceResponse
*/
export type GetServiceResponse = Message<"mantrae.v1.GetServiceResponse"> & {
/**
* @generated from field: mantrae.v1.Service service = 1;
*/
service?: Service;
export type GetServiceResponse = Message<'mantrae.v1.GetServiceResponse'> & {
/**
* @generated from field: mantrae.v1.Service service = 1;
*/
service?: Service;
};
/**
* Describes the message mantrae.v1.GetServiceResponse.
* Use `create(GetServiceResponseSchema)` to create a new message.
*/
export const GetServiceResponseSchema: GenMessage<GetServiceResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 2);
export const GetServiceResponseSchema: GenMessage<GetServiceResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 2);
/**
* @generated from message mantrae.v1.CreateServiceRequest
*/
export type CreateServiceRequest = Message<"mantrae.v1.CreateServiceRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type CreateServiceRequest = Message<'mantrae.v1.CreateServiceRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 5;
*/
enabled: boolean;
/**
* @generated from field: mantrae.v1.ProtocolType type = 6;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 6;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.CreateServiceRequest.
* Use `create(CreateServiceRequestSchema)` to create a new message.
*/
export const CreateServiceRequestSchema: GenMessage<CreateServiceRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 3);
export const CreateServiceRequestSchema: GenMessage<CreateServiceRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 3);
/**
* @generated from message mantrae.v1.CreateServiceResponse
*/
export type CreateServiceResponse = Message<"mantrae.v1.CreateServiceResponse"> & {
/**
* @generated from field: mantrae.v1.Service service = 1;
*/
service?: Service;
export type CreateServiceResponse = Message<'mantrae.v1.CreateServiceResponse'> & {
/**
* @generated from field: mantrae.v1.Service service = 1;
*/
service?: Service;
};
/**
* Describes the message mantrae.v1.CreateServiceResponse.
* Use `create(CreateServiceResponseSchema)` to create a new message.
*/
export const CreateServiceResponseSchema: GenMessage<CreateServiceResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 4);
export const CreateServiceResponseSchema: GenMessage<CreateServiceResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 4);
/**
* @generated from message mantrae.v1.UpdateServiceRequest
*/
export type UpdateServiceRequest = Message<"mantrae.v1.UpdateServiceRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type UpdateServiceRequest = Message<'mantrae.v1.UpdateServiceRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: bool enabled = 3;
*/
enabled: boolean;
/**
* @generated from field: bool enabled = 3;
*/
enabled: boolean;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 4;
*/
config?: JsonObject;
/**
* @generated from field: mantrae.v1.ProtocolType type = 5;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 5;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.UpdateServiceRequest.
* Use `create(UpdateServiceRequestSchema)` to create a new message.
*/
export const UpdateServiceRequestSchema: GenMessage<UpdateServiceRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 5);
export const UpdateServiceRequestSchema: GenMessage<UpdateServiceRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 5);
/**
* @generated from message mantrae.v1.UpdateServiceResponse
*/
export type UpdateServiceResponse = Message<"mantrae.v1.UpdateServiceResponse"> & {
/**
* @generated from field: mantrae.v1.Service service = 1;
*/
service?: Service;
export type UpdateServiceResponse = Message<'mantrae.v1.UpdateServiceResponse'> & {
/**
* @generated from field: mantrae.v1.Service service = 1;
*/
service?: Service;
};
/**
* Describes the message mantrae.v1.UpdateServiceResponse.
* Use `create(UpdateServiceResponseSchema)` to create a new message.
*/
export const UpdateServiceResponseSchema: GenMessage<UpdateServiceResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 6);
export const UpdateServiceResponseSchema: GenMessage<UpdateServiceResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 6);
/**
* @generated from message mantrae.v1.DeleteServiceRequest
*/
export type DeleteServiceRequest = Message<"mantrae.v1.DeleteServiceRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteServiceRequest = Message<'mantrae.v1.DeleteServiceRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
/**
* @generated from field: mantrae.v1.ProtocolType type = 2;
*/
type: ProtocolType;
};
/**
* Describes the message mantrae.v1.DeleteServiceRequest.
* Use `create(DeleteServiceRequestSchema)` to create a new message.
*/
export const DeleteServiceRequestSchema: GenMessage<DeleteServiceRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 7);
export const DeleteServiceRequestSchema: GenMessage<DeleteServiceRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 7);
/**
* @generated from message mantrae.v1.DeleteServiceResponse
*/
export type DeleteServiceResponse = Message<"mantrae.v1.DeleteServiceResponse"> & {
};
export type DeleteServiceResponse = Message<'mantrae.v1.DeleteServiceResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteServiceResponse.
* Use `create(DeleteServiceResponseSchema)` to create a new message.
*/
export const DeleteServiceResponseSchema: GenMessage<DeleteServiceResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 8);
export const DeleteServiceResponseSchema: GenMessage<DeleteServiceResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 8);
/**
* @generated from message mantrae.v1.ListServicesRequest
*/
export type ListServicesRequest = Message<"mantrae.v1.ListServicesRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListServicesRequest = Message<'mantrae.v1.ListServicesRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional string agent_id = 2;
*/
agentId?: string;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional mantrae.v1.ProtocolType type = 3;
*/
type?: ProtocolType;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 4;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 5;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListServicesRequest.
* Use `create(ListServicesRequestSchema)` to create a new message.
*/
export const ListServicesRequestSchema: GenMessage<ListServicesRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 9);
export const ListServicesRequestSchema: GenMessage<ListServicesRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 9);
/**
* @generated from message mantrae.v1.ListServicesResponse
*/
export type ListServicesResponse = Message<"mantrae.v1.ListServicesResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Service services = 1;
*/
services: Service[];
export type ListServicesResponse = Message<'mantrae.v1.ListServicesResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Service services = 1;
*/
services: Service[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListServicesResponse.
* Use `create(ListServicesResponseSchema)` to create a new message.
*/
export const ListServicesResponseSchema: GenMessage<ListServicesResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_service, 10);
export const ListServicesResponseSchema: GenMessage<ListServicesResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_service, 10);
/**
* @generated from service mantrae.v1.ServiceService
*/
export const ServiceService: GenService<{
/**
* @generated from rpc mantrae.v1.ServiceService.GetService
*/
getService: {
methodKind: "unary";
input: typeof GetServiceRequestSchema;
output: typeof GetServiceResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServiceService.CreateService
*/
createService: {
methodKind: "unary";
input: typeof CreateServiceRequestSchema;
output: typeof CreateServiceResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServiceService.UpdateService
*/
updateService: {
methodKind: "unary";
input: typeof UpdateServiceRequestSchema;
output: typeof UpdateServiceResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServiceService.DeleteService
*/
deleteService: {
methodKind: "unary";
input: typeof DeleteServiceRequestSchema;
output: typeof DeleteServiceResponseSchema;
},
/**
* @generated from rpc mantrae.v1.ServiceService.ListServices
*/
listServices: {
methodKind: "unary";
input: typeof ListServicesRequestSchema;
output: typeof ListServicesResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_service, 0);
/**
* @generated from rpc mantrae.v1.ServiceService.GetService
*/
getService: {
methodKind: 'unary';
input: typeof GetServiceRequestSchema;
output: typeof GetServiceResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServiceService.CreateService
*/
createService: {
methodKind: 'unary';
input: typeof CreateServiceRequestSchema;
output: typeof CreateServiceResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServiceService.UpdateService
*/
updateService: {
methodKind: 'unary';
input: typeof UpdateServiceRequestSchema;
output: typeof UpdateServiceResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServiceService.DeleteService
*/
deleteService: {
methodKind: 'unary';
input: typeof DeleteServiceRequestSchema;
output: typeof DeleteServiceResponseSchema;
};
/**
* @generated from rpc mantrae.v1.ServiceService.ListServices
*/
listServices: {
methodKind: 'unary';
input: typeof ListServicesRequestSchema;
output: typeof ListServicesResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_service, 0);

View File

@@ -2,177 +2,185 @@
// @generated from file mantrae/v1/setting.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/setting.proto.
*/
export const file_mantrae_v1_setting: GenFile = /*@__PURE__*/
fileDesc("ChhtYW50cmFlL3YxL3NldHRpbmcucHJvdG8SCm1hbnRyYWUudjEiVQoHU2V0dGluZxILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSLgoKdXBkYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiKQoRR2V0U2V0dGluZ1JlcXVlc3QSFAoDa2V5GAEgASgJQge6SARyAhABIiMKEkdldFNldHRpbmdSZXNwb25zZRINCgV2YWx1ZRgBIAEoCSI7ChRVcGRhdGVTZXR0aW5nUmVxdWVzdBIUCgNrZXkYASABKAlCB7pIBHICEAESDQoFdmFsdWUYAiABKAkiPQoVVXBkYXRlU2V0dGluZ1Jlc3BvbnNlEiQKB3NldHRpbmcYASABKAsyEy5tYW50cmFlLnYxLlNldHRpbmciFQoTTGlzdFNldHRpbmdzUmVxdWVzdCI9ChRMaXN0U2V0dGluZ3NSZXNwb25zZRIlCghzZXR0aW5ncxgBIAMoCzITLm1hbnRyYWUudjEuU2V0dGluZzKQAgoOU2V0dGluZ1NlcnZpY2USUAoKR2V0U2V0dGluZxIdLm1hbnRyYWUudjEuR2V0U2V0dGluZ1JlcXVlc3QaHi5tYW50cmFlLnYxLkdldFNldHRpbmdSZXNwb25zZSIDkAIBElQKDVVwZGF0ZVNldHRpbmcSIC5tYW50cmFlLnYxLlVwZGF0ZVNldHRpbmdSZXF1ZXN0GiEubWFudHJhZS52MS5VcGRhdGVTZXR0aW5nUmVzcG9uc2USVgoMTGlzdFNldHRpbmdzEh8ubWFudHJhZS52MS5MaXN0U2V0dGluZ3NSZXF1ZXN0GiAubWFudHJhZS52MS5MaXN0U2V0dGluZ3NSZXNwb25zZSIDkAIBQqYBCg5jb20ubWFudHJhZS52MUIMU2V0dGluZ1Byb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_setting: GenFile =
/*@__PURE__*/
fileDesc(
'ChhtYW50cmFlL3YxL3NldHRpbmcucHJvdG8SCm1hbnRyYWUudjEiVQoHU2V0dGluZxILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSLgoKdXBkYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiKQoRR2V0U2V0dGluZ1JlcXVlc3QSFAoDa2V5GAEgASgJQge6SARyAhABIiMKEkdldFNldHRpbmdSZXNwb25zZRINCgV2YWx1ZRgBIAEoCSI7ChRVcGRhdGVTZXR0aW5nUmVxdWVzdBIUCgNrZXkYASABKAlCB7pIBHICEAESDQoFdmFsdWUYAiABKAkiPQoVVXBkYXRlU2V0dGluZ1Jlc3BvbnNlEiQKB3NldHRpbmcYASABKAsyEy5tYW50cmFlLnYxLlNldHRpbmciFQoTTGlzdFNldHRpbmdzUmVxdWVzdCI9ChRMaXN0U2V0dGluZ3NSZXNwb25zZRIlCghzZXR0aW5ncxgBIAMoCzITLm1hbnRyYWUudjEuU2V0dGluZzKQAgoOU2V0dGluZ1NlcnZpY2USUAoKR2V0U2V0dGluZxIdLm1hbnRyYWUudjEuR2V0U2V0dGluZ1JlcXVlc3QaHi5tYW50cmFlLnYxLkdldFNldHRpbmdSZXNwb25zZSIDkAIBElQKDVVwZGF0ZVNldHRpbmcSIC5tYW50cmFlLnYxLlVwZGF0ZVNldHRpbmdSZXF1ZXN0GiEubWFudHJhZS52MS5VcGRhdGVTZXR0aW5nUmVzcG9uc2USVgoMTGlzdFNldHRpbmdzEh8ubWFudHJhZS52MS5MaXN0U2V0dGluZ3NSZXF1ZXN0GiAubWFudHJhZS52MS5MaXN0U2V0dGluZ3NSZXNwb25zZSIDkAIBQqYBCg5jb20ubWFudHJhZS52MUIMU2V0dGluZ1Byb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.Setting
*/
export type Setting = Message<"mantrae.v1.Setting"> & {
/**
* @generated from field: string key = 1;
*/
key: string;
export type Setting = Message<'mantrae.v1.Setting'> & {
/**
* @generated from field: string key = 1;
*/
key: string;
/**
* @generated from field: string value = 2;
*/
value: string;
/**
* @generated from field: string value = 2;
*/
value: string;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 3;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 3;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.Setting.
* Use `create(SettingSchema)` to create a new message.
*/
export const SettingSchema: GenMessage<Setting> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 0);
export const SettingSchema: GenMessage<Setting> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 0);
/**
* @generated from message mantrae.v1.GetSettingRequest
*/
export type GetSettingRequest = Message<"mantrae.v1.GetSettingRequest"> & {
/**
* @generated from field: string key = 1;
*/
key: string;
export type GetSettingRequest = Message<'mantrae.v1.GetSettingRequest'> & {
/**
* @generated from field: string key = 1;
*/
key: string;
};
/**
* Describes the message mantrae.v1.GetSettingRequest.
* Use `create(GetSettingRequestSchema)` to create a new message.
*/
export const GetSettingRequestSchema: GenMessage<GetSettingRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 1);
export const GetSettingRequestSchema: GenMessage<GetSettingRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 1);
/**
* @generated from message mantrae.v1.GetSettingResponse
*/
export type GetSettingResponse = Message<"mantrae.v1.GetSettingResponse"> & {
/**
* @generated from field: string value = 1;
*/
value: string;
export type GetSettingResponse = Message<'mantrae.v1.GetSettingResponse'> & {
/**
* @generated from field: string value = 1;
*/
value: string;
};
/**
* Describes the message mantrae.v1.GetSettingResponse.
* Use `create(GetSettingResponseSchema)` to create a new message.
*/
export const GetSettingResponseSchema: GenMessage<GetSettingResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 2);
export const GetSettingResponseSchema: GenMessage<GetSettingResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 2);
/**
* @generated from message mantrae.v1.UpdateSettingRequest
*/
export type UpdateSettingRequest = Message<"mantrae.v1.UpdateSettingRequest"> & {
/**
* @generated from field: string key = 1;
*/
key: string;
export type UpdateSettingRequest = Message<'mantrae.v1.UpdateSettingRequest'> & {
/**
* @generated from field: string key = 1;
*/
key: string;
/**
* @generated from field: string value = 2;
*/
value: string;
/**
* @generated from field: string value = 2;
*/
value: string;
};
/**
* Describes the message mantrae.v1.UpdateSettingRequest.
* Use `create(UpdateSettingRequestSchema)` to create a new message.
*/
export const UpdateSettingRequestSchema: GenMessage<UpdateSettingRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 3);
export const UpdateSettingRequestSchema: GenMessage<UpdateSettingRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 3);
/**
* @generated from message mantrae.v1.UpdateSettingResponse
*/
export type UpdateSettingResponse = Message<"mantrae.v1.UpdateSettingResponse"> & {
/**
* @generated from field: mantrae.v1.Setting setting = 1;
*/
setting?: Setting;
export type UpdateSettingResponse = Message<'mantrae.v1.UpdateSettingResponse'> & {
/**
* @generated from field: mantrae.v1.Setting setting = 1;
*/
setting?: Setting;
};
/**
* Describes the message mantrae.v1.UpdateSettingResponse.
* Use `create(UpdateSettingResponseSchema)` to create a new message.
*/
export const UpdateSettingResponseSchema: GenMessage<UpdateSettingResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 4);
export const UpdateSettingResponseSchema: GenMessage<UpdateSettingResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 4);
/**
* @generated from message mantrae.v1.ListSettingsRequest
*/
export type ListSettingsRequest = Message<"mantrae.v1.ListSettingsRequest"> & {
};
export type ListSettingsRequest = Message<'mantrae.v1.ListSettingsRequest'> & {};
/**
* Describes the message mantrae.v1.ListSettingsRequest.
* Use `create(ListSettingsRequestSchema)` to create a new message.
*/
export const ListSettingsRequestSchema: GenMessage<ListSettingsRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 5);
export const ListSettingsRequestSchema: GenMessage<ListSettingsRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 5);
/**
* @generated from message mantrae.v1.ListSettingsResponse
*/
export type ListSettingsResponse = Message<"mantrae.v1.ListSettingsResponse"> & {
/**
* @generated from field: repeated mantrae.v1.Setting settings = 1;
*/
settings: Setting[];
export type ListSettingsResponse = Message<'mantrae.v1.ListSettingsResponse'> & {
/**
* @generated from field: repeated mantrae.v1.Setting settings = 1;
*/
settings: Setting[];
};
/**
* Describes the message mantrae.v1.ListSettingsResponse.
* Use `create(ListSettingsResponseSchema)` to create a new message.
*/
export const ListSettingsResponseSchema: GenMessage<ListSettingsResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 6);
export const ListSettingsResponseSchema: GenMessage<ListSettingsResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_setting, 6);
/**
* @generated from service mantrae.v1.SettingService
*/
export const SettingService: GenService<{
/**
* @generated from rpc mantrae.v1.SettingService.GetSetting
*/
getSetting: {
methodKind: "unary";
input: typeof GetSettingRequestSchema;
output: typeof GetSettingResponseSchema;
},
/**
* @generated from rpc mantrae.v1.SettingService.UpdateSetting
*/
updateSetting: {
methodKind: "unary";
input: typeof UpdateSettingRequestSchema;
output: typeof UpdateSettingResponseSchema;
},
/**
* @generated from rpc mantrae.v1.SettingService.ListSettings
*/
listSettings: {
methodKind: "unary";
input: typeof ListSettingsRequestSchema;
output: typeof ListSettingsResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_setting, 0);
/**
* @generated from rpc mantrae.v1.SettingService.GetSetting
*/
getSetting: {
methodKind: 'unary';
input: typeof GetSettingRequestSchema;
output: typeof GetSettingResponseSchema;
};
/**
* @generated from rpc mantrae.v1.SettingService.UpdateSetting
*/
updateSetting: {
methodKind: 'unary';
input: typeof UpdateSettingRequestSchema;
output: typeof UpdateSettingResponseSchema;
};
/**
* @generated from rpc mantrae.v1.SettingService.ListSettings
*/
listSettings: {
methodKind: 'unary';
input: typeof ListSettingsRequestSchema;
output: typeof ListSettingsResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_setting, 0);

View File

@@ -2,232 +2,249 @@
// @generated from file mantrae/v1/traefik_instance.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import {
file_google_protobuf_struct,
file_google_protobuf_timestamp
} from '@bufbuild/protobuf/wkt';
import type { JsonObject, Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/traefik_instance.proto.
*/
export const file_mantrae_v1_traefik_instance: GenFile = /*@__PURE__*/
fileDesc("CiFtYW50cmFlL3YxL3RyYWVmaWtfaW5zdGFuY2UucHJvdG8SCm1hbnRyYWUudjEi9gIKD1RyYWVmaWtJbnN0YW5jZRIKCgJpZBgBIAEoAxIMCgRuYW1lGAIgASgJEgsKA3VybBgDIAEoCRIQCgh1c2VybmFtZRgEIAEoCRIQCghwYXNzd29yZBgFIAEoCRILCgN0bHMYBiABKAgSLQoMZW50cnlfcG9pbnRzGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghvdmVydmlldxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJwoGY29uZmlnGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgd2ZXJzaW9uGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIwChlHZXRUcmFlZmlrSW5zdGFuY2VSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAIlMKGkdldFRyYWVmaWtJbnN0YW5jZVJlc3BvbnNlEjUKEHRyYWVmaWtfaW5zdGFuY2UYASABKAsyGy5tYW50cmFlLnYxLlRyYWVmaWtJbnN0YW5jZSIzChxEZWxldGVUcmFlZmlrSW5zdGFuY2VSZXF1ZXN0EhMKAmlkGAEgASgDQge6SAQiAiAAIh8KHURlbGV0ZVRyYWVmaWtJbnN0YW5jZVJlc3BvbnNlItkBChtMaXN0VHJhZWZpa0luc3RhbmNlc1JlcXVlc3QSGwoKcHJvZmlsZV9pZBgBIAEoA0IHukgEIgIgABJqCgVsaW1pdBgCIAEoA0JWukhTugFQCgtsaW1pdC52YWxpZBIpbGltaXQgbXVzdCBiZSBlaXRoZXIgLTEgb3IgZ3JlYXRlciB0aGFuIDAaFnRoaXMgPT0gLTEgfHwgdGhpcyA+IDBIAIgBARIcCgZvZmZzZXQYAyABKANCB7pIBCICKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCJrChxMaXN0VHJhZWZpa0luc3RhbmNlc1Jlc3BvbnNlEjYKEXRyYWVmaWtfaW5zdGFuY2VzGAEgAygLMhsubWFudHJhZS52MS5UcmFlZmlrSW5zdGFuY2USEwoLdG90YWxfY291bnQYAiABKAMy4AIKFlRyYWVmaWtJbnN0YW5jZVNlcnZpY2USaAoSR2V0VHJhZWZpa0luc3RhbmNlEiUubWFudHJhZS52MS5HZXRUcmFlZmlrSW5zdGFuY2VSZXF1ZXN0GiYubWFudHJhZS52MS5HZXRUcmFlZmlrSW5zdGFuY2VSZXNwb25zZSIDkAIBEmwKFURlbGV0ZVRyYWVmaWtJbnN0YW5jZRIoLm1hbnRyYWUudjEuRGVsZXRlVHJhZWZpa0luc3RhbmNlUmVxdWVzdBopLm1hbnRyYWUudjEuRGVsZXRlVHJhZWZpa0luc3RhbmNlUmVzcG9uc2USbgoUTGlzdFRyYWVmaWtJbnN0YW5jZXMSJy5tYW50cmFlLnYxLkxpc3RUcmFlZmlrSW5zdGFuY2VzUmVxdWVzdBooLm1hbnRyYWUudjEuTGlzdFRyYWVmaWtJbnN0YW5jZXNSZXNwb25zZSIDkAIBQq4BCg5jb20ubWFudHJhZS52MUIUVHJhZWZpa0luc3RhbmNlUHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp]);
export const file_mantrae_v1_traefik_instance: GenFile =
/*@__PURE__*/
fileDesc(
'CiFtYW50cmFlL3YxL3RyYWVmaWtfaW5zdGFuY2UucHJvdG8SCm1hbnRyYWUudjEiigMKD1RyYWVmaWtJbnN0YW5jZRIKCgJpZBgBIAEoAxISCgpwcm9maWxlX2lkGAIgASgDEgwKBG5hbWUYAyABKAkSCwoDdXJsGAQgASgJEhAKCHVzZXJuYW1lGAUgASgJEhAKCHBhc3N3b3JkGAYgASgJEgsKA3RscxgHIAEoCBItCgxlbnRyeV9wb2ludHMYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG92ZXJ2aWV3GAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgZjb25maWcYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EigKB3ZlcnNpb24YCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjAKGUdldFRyYWVmaWtJbnN0YW5jZVJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAAiUwoaR2V0VHJhZWZpa0luc3RhbmNlUmVzcG9uc2USNQoQdHJhZWZpa19pbnN0YW5jZRgBIAEoCzIbLm1hbnRyYWUudjEuVHJhZWZpa0luc3RhbmNlIjMKHERlbGV0ZVRyYWVmaWtJbnN0YW5jZVJlcXVlc3QSEwoCaWQYASABKANCB7pIBCICIAAiHwodRGVsZXRlVHJhZWZpa0luc3RhbmNlUmVzcG9uc2Ui2QEKG0xpc3RUcmFlZmlrSW5zdGFuY2VzUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAEmoKBWxpbWl0GAIgASgDQla6SFO6AVAKC2xpbWl0LnZhbGlkEilsaW1pdCBtdXN0IGJlIGVpdGhlciAtMSBvciBncmVhdGVyIHRoYW4gMBoWdGhpcyA9PSAtMSB8fCB0aGlzID4gMEgAiAEBEhwKBm9mZnNldBgDIAEoA0IHukgEIgIoAEgBiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0ImsKHExpc3RUcmFlZmlrSW5zdGFuY2VzUmVzcG9uc2USNgoRdHJhZWZpa19pbnN0YW5jZXMYASADKAsyGy5tYW50cmFlLnYxLlRyYWVmaWtJbnN0YW5jZRITCgt0b3RhbF9jb3VudBgCIAEoAzLgAgoWVHJhZWZpa0luc3RhbmNlU2VydmljZRJoChJHZXRUcmFlZmlrSW5zdGFuY2USJS5tYW50cmFlLnYxLkdldFRyYWVmaWtJbnN0YW5jZVJlcXVlc3QaJi5tYW50cmFlLnYxLkdldFRyYWVmaWtJbnN0YW5jZVJlc3BvbnNlIgOQAgESbAoVRGVsZXRlVHJhZWZpa0luc3RhbmNlEigubWFudHJhZS52MS5EZWxldGVUcmFlZmlrSW5zdGFuY2VSZXF1ZXN0GikubWFudHJhZS52MS5EZWxldGVUcmFlZmlrSW5zdGFuY2VSZXNwb25zZRJuChRMaXN0VHJhZWZpa0luc3RhbmNlcxInLm1hbnRyYWUudjEuTGlzdFRyYWVmaWtJbnN0YW5jZXNSZXF1ZXN0GigubWFudHJhZS52MS5MaXN0VHJhZWZpa0luc3RhbmNlc1Jlc3BvbnNlIgOQAgFCrgEKDmNvbS5tYW50cmFlLnYxQhRUcmFlZmlrSW5zdGFuY2VQcm90b1ABWj1naXRodWIuY29tL21penVjaGlsYWJzL21hbnRyYWUvcHJvdG8vZ2VuL21hbnRyYWUvdjE7bWFudHJhZXYxogIDTVhYqgIKTWFudHJhZS5WMcoCCk1hbnRyYWVcVjHiAhZNYW50cmFlXFYxXEdQQk1ldGFkYXRh6gILTWFudHJhZTo6VjFiBnByb3RvMw',
[file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.TraefikInstance
*/
export type TraefikInstance = Message<"mantrae.v1.TraefikInstance"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type TraefikInstance = Message<'mantrae.v1.TraefikInstance'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: int64 profile_id = 2;
*/
profileId: bigint;
/**
* @generated from field: string url = 3;
*/
url: string;
/**
* @generated from field: string name = 3;
*/
name: string;
/**
* @generated from field: string username = 4;
*/
username: string;
/**
* @generated from field: string url = 4;
*/
url: string;
/**
* @generated from field: string password = 5;
*/
password: string;
/**
* @generated from field: string username = 5;
*/
username: string;
/**
* @generated from field: bool tls = 6;
*/
tls: boolean;
/**
* @generated from field: string password = 6;
*/
password: string;
/**
* @generated from field: google.protobuf.Struct entry_points = 7;
*/
entryPoints?: JsonObject;
/**
* @generated from field: bool tls = 7;
*/
tls: boolean;
/**
* @generated from field: google.protobuf.Struct overview = 8;
*/
overview?: JsonObject;
/**
* @generated from field: google.protobuf.Struct entry_points = 8;
*/
entryPoints?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 9;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Struct overview = 9;
*/
overview?: JsonObject;
/**
* @generated from field: google.protobuf.Struct version = 10;
*/
version?: JsonObject;
/**
* @generated from field: google.protobuf.Struct config = 10;
*/
config?: JsonObject;
/**
* @generated from field: google.protobuf.Timestamp created_at = 11;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Struct version = 11;
*/
version?: JsonObject;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 12;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 12;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 13;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.TraefikInstance.
* Use `create(TraefikInstanceSchema)` to create a new message.
*/
export const TraefikInstanceSchema: GenMessage<TraefikInstance> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 0);
export const TraefikInstanceSchema: GenMessage<TraefikInstance> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 0);
/**
* @generated from message mantrae.v1.GetTraefikInstanceRequest
*/
export type GetTraefikInstanceRequest = Message<"mantrae.v1.GetTraefikInstanceRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type GetTraefikInstanceRequest = Message<'mantrae.v1.GetTraefikInstanceRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.GetTraefikInstanceRequest.
* Use `create(GetTraefikInstanceRequestSchema)` to create a new message.
*/
export const GetTraefikInstanceRequestSchema: GenMessage<GetTraefikInstanceRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 1);
export const GetTraefikInstanceRequestSchema: GenMessage<GetTraefikInstanceRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 1);
/**
* @generated from message mantrae.v1.GetTraefikInstanceResponse
*/
export type GetTraefikInstanceResponse = Message<"mantrae.v1.GetTraefikInstanceResponse"> & {
/**
* @generated from field: mantrae.v1.TraefikInstance traefik_instance = 1;
*/
traefikInstance?: TraefikInstance;
export type GetTraefikInstanceResponse = Message<'mantrae.v1.GetTraefikInstanceResponse'> & {
/**
* @generated from field: mantrae.v1.TraefikInstance traefik_instance = 1;
*/
traefikInstance?: TraefikInstance;
};
/**
* Describes the message mantrae.v1.GetTraefikInstanceResponse.
* Use `create(GetTraefikInstanceResponseSchema)` to create a new message.
*/
export const GetTraefikInstanceResponseSchema: GenMessage<GetTraefikInstanceResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 2);
export const GetTraefikInstanceResponseSchema: GenMessage<GetTraefikInstanceResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 2);
/**
* @generated from message mantrae.v1.DeleteTraefikInstanceRequest
*/
export type DeleteTraefikInstanceRequest = Message<"mantrae.v1.DeleteTraefikInstanceRequest"> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
export type DeleteTraefikInstanceRequest = Message<'mantrae.v1.DeleteTraefikInstanceRequest'> & {
/**
* @generated from field: int64 id = 1;
*/
id: bigint;
};
/**
* Describes the message mantrae.v1.DeleteTraefikInstanceRequest.
* Use `create(DeleteTraefikInstanceRequestSchema)` to create a new message.
*/
export const DeleteTraefikInstanceRequestSchema: GenMessage<DeleteTraefikInstanceRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 3);
export const DeleteTraefikInstanceRequestSchema: GenMessage<DeleteTraefikInstanceRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 3);
/**
* @generated from message mantrae.v1.DeleteTraefikInstanceResponse
*/
export type DeleteTraefikInstanceResponse = Message<"mantrae.v1.DeleteTraefikInstanceResponse"> & {
};
export type DeleteTraefikInstanceResponse =
Message<'mantrae.v1.DeleteTraefikInstanceResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteTraefikInstanceResponse.
* Use `create(DeleteTraefikInstanceResponseSchema)` to create a new message.
*/
export const DeleteTraefikInstanceResponseSchema: GenMessage<DeleteTraefikInstanceResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 4);
export const DeleteTraefikInstanceResponseSchema: GenMessage<DeleteTraefikInstanceResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 4);
/**
* @generated from message mantrae.v1.ListTraefikInstancesRequest
*/
export type ListTraefikInstancesRequest = Message<"mantrae.v1.ListTraefikInstancesRequest"> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
export type ListTraefikInstancesRequest = Message<'mantrae.v1.ListTraefikInstancesRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
/**
* @generated from field: optional int64 limit = 2;
*/
limit?: bigint;
/**
* @generated from field: optional int64 limit = 2;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 3;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 3;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListTraefikInstancesRequest.
* Use `create(ListTraefikInstancesRequestSchema)` to create a new message.
*/
export const ListTraefikInstancesRequestSchema: GenMessage<ListTraefikInstancesRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 5);
export const ListTraefikInstancesRequestSchema: GenMessage<ListTraefikInstancesRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 5);
/**
* @generated from message mantrae.v1.ListTraefikInstancesResponse
*/
export type ListTraefikInstancesResponse = Message<"mantrae.v1.ListTraefikInstancesResponse"> & {
/**
* @generated from field: repeated mantrae.v1.TraefikInstance traefik_instances = 1;
*/
traefikInstances: TraefikInstance[];
export type ListTraefikInstancesResponse = Message<'mantrae.v1.ListTraefikInstancesResponse'> & {
/**
* @generated from field: repeated mantrae.v1.TraefikInstance traefik_instances = 1;
*/
traefikInstances: TraefikInstance[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListTraefikInstancesResponse.
* Use `create(ListTraefikInstancesResponseSchema)` to create a new message.
*/
export const ListTraefikInstancesResponseSchema: GenMessage<ListTraefikInstancesResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 6);
export const ListTraefikInstancesResponseSchema: GenMessage<ListTraefikInstancesResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_traefik_instance, 6);
/**
* @generated from service mantrae.v1.TraefikInstanceService
*/
export const TraefikInstanceService: GenService<{
/**
* @generated from rpc mantrae.v1.TraefikInstanceService.GetTraefikInstance
*/
getTraefikInstance: {
methodKind: "unary";
input: typeof GetTraefikInstanceRequestSchema;
output: typeof GetTraefikInstanceResponseSchema;
},
/**
* @generated from rpc mantrae.v1.TraefikInstanceService.DeleteTraefikInstance
*/
deleteTraefikInstance: {
methodKind: "unary";
input: typeof DeleteTraefikInstanceRequestSchema;
output: typeof DeleteTraefikInstanceResponseSchema;
},
/**
* @generated from rpc mantrae.v1.TraefikInstanceService.ListTraefikInstances
*/
listTraefikInstances: {
methodKind: "unary";
input: typeof ListTraefikInstancesRequestSchema;
output: typeof ListTraefikInstancesResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_traefik_instance, 0);
/**
* @generated from rpc mantrae.v1.TraefikInstanceService.GetTraefikInstance
*/
getTraefikInstance: {
methodKind: 'unary';
input: typeof GetTraefikInstanceRequestSchema;
output: typeof GetTraefikInstanceResponseSchema;
};
/**
* @generated from rpc mantrae.v1.TraefikInstanceService.DeleteTraefikInstance
*/
deleteTraefikInstance: {
methodKind: 'unary';
input: typeof DeleteTraefikInstanceRequestSchema;
output: typeof DeleteTraefikInstanceResponseSchema;
};
/**
* @generated from rpc mantrae.v1.TraefikInstanceService.ListTraefikInstances
*/
listTraefikInstances: {
methodKind: 'unary';
input: typeof ListTraefikInstancesRequestSchema;
output: typeof ListTraefikInstancesResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_traefik_instance, 0);

View File

@@ -2,589 +2,618 @@
// @generated from file mantrae/v1/user.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
import type { GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Timestamp } from '@bufbuild/protobuf/wkt';
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/user.proto.
*/
export const file_mantrae_v1_user: GenFile = /*@__PURE__*/
fileDesc("ChVtYW50cmFlL3YxL3VzZXIucHJvdG8SCm1hbnRyYWUudjEikgIKBFVzZXISCgoCaWQYASABKAkSEAoIdXNlcm5hbWUYAiABKAkSEAoIcGFzc3dvcmQYAyABKAkSDQoFZW1haWwYBCABKAkSCwoDb3RwGAYgASgJEi4KCm90cF9leHBpcnkYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmxhc3RfbG9naW4YCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wInwKEExvZ2luVXNlclJlcXVlc3QSGwoIdXNlcm5hbWUYASABKAlCB7pIBHICEANIABIYCgVlbWFpbBgCIAEoCUIHukgEcgJgAUgAEhwKCHBhc3N3b3JkGAMgASgJQgq6SAfIAQFyAhAIQhMKCmlkZW50aWZpZXISBbpIAggBIjMKEUxvZ2luVXNlclJlc3BvbnNlEh4KBHVzZXIYASABKAsyEC5tYW50cmFlLnYxLlVzZXIiEwoRTG9nb3V0VXNlclJlcXVlc3QiFAoSTG9nb3V0VXNlclJlc3BvbnNlInUKEFZlcmlmeU9UUFJlcXVlc3QSGwoIdXNlcm5hbWUYASABKAlCB7pIBHICEANIABIYCgVlbWFpbBgCIAEoCUIHukgEcgJgAUgAEhUKA290cBgDIAEoCUIIukgFcgOYAQZCEwoKaWRlbnRpZmllchIFukgCCAEiMwoRVmVyaWZ5T1RQUmVzcG9uc2USHgoEdXNlchgBIAEoCzIQLm1hbnRyYWUudjEuVXNlciJcCg5TZW5kT1RQUmVxdWVzdBIbCgh1c2VybmFtZRgBIAEoCUIHukgEcgIQA0gAEhgKBWVtYWlsGAIgASgJQge6SARyAmABSABCEwoKaWRlbnRpZmllchIFukgCCAEiEQoPU2VuZE9UUFJlc3BvbnNlImwKDkdldFVzZXJSZXF1ZXN0EhUKAmlkGAEgASgJQge6SARyAhABSAASGwoIdXNlcm5hbWUYAiABKAlCB7pIBHICEANIABIYCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgAQgwKCmlkZW50aWZpZXIiMQoPR2V0VXNlclJlc3BvbnNlEh4KBHVzZXIYASABKAsyEC5tYW50cmFlLnYxLlVzZXIicwoRQ3JlYXRlVXNlclJlcXVlc3QSGQoIdXNlcm5hbWUYASABKAlCB7pIBHICEAMSGQoIcGFzc3dvcmQYAiABKAlCB7pIBHICEAgSHgoFZW1haWwYAyABKAlCCrpIB9gBAHICYAFIAIgBAUIICgZfZW1haWwiNAoSQ3JlYXRlVXNlclJlc3BvbnNlEh4KBHVzZXIYASABKAsyEC5tYW50cmFlLnYxLlVzZXIinQEKEVVwZGF0ZVVzZXJSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhkKCHVzZXJuYW1lGAIgASgJQge6SARyAhADEh4KBWVtYWlsGAMgASgJQgq6SAfYAQByAmABSACIAQESIQoIcGFzc3dvcmQYBCABKAlCCrpIB9gBAHICEAhIAYgBAUIICgZfZW1haWxCCwoJX3Bhc3N3b3JkIjQKElVwZGF0ZVVzZXJSZXNwb25zZRIeCgR1c2VyGAEgASgLMhAubWFudHJhZS52MS5Vc2VyIigKEURlbGV0ZVVzZXJSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIhQKEkRlbGV0ZVVzZXJSZXNwb25zZSKxAQoQTGlzdFVzZXJzUmVxdWVzdBJqCgVsaW1pdBgBIAEoA0JWukhTugFQCgtsaW1pdC52YWxpZBIpbGltaXQgbXVzdCBiZSBlaXRoZXIgLTEgb3IgZ3JlYXRlciB0aGFuIDAaFnRoaXMgPT0gLTEgfHwgdGhpcyA+IDBIAIgBARIcCgZvZmZzZXQYAiABKANCB7pIBCICKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCJJChFMaXN0VXNlcnNSZXNwb25zZRIfCgV1c2VycxgBIAMoCzIQLm1hbnRyYWUudjEuVXNlchITCgt0b3RhbF9jb3VudBgCIAEoAyIWChRHZXRPSURDU3RhdHVzUmVxdWVzdCJWChVHZXRPSURDU3RhdHVzUmVzcG9uc2USFAoMb2lkY19lbmFibGVkGAEgASgIEhUKDWxvZ2luX2VuYWJsZWQYAiABKAgSEAoIcHJvdmlkZXIYAyABKAkyhwYKC1VzZXJTZXJ2aWNlEkgKCUxvZ2luVXNlchIcLm1hbnRyYWUudjEuTG9naW5Vc2VyUmVxdWVzdBodLm1hbnRyYWUudjEuTG9naW5Vc2VyUmVzcG9uc2USSwoKTG9nb3V0VXNlchIdLm1hbnRyYWUudjEuTG9nb3V0VXNlclJlcXVlc3QaHi5tYW50cmFlLnYxLkxvZ291dFVzZXJSZXNwb25zZRJICglWZXJpZnlPVFASHC5tYW50cmFlLnYxLlZlcmlmeU9UUFJlcXVlc3QaHS5tYW50cmFlLnYxLlZlcmlmeU9UUFJlc3BvbnNlEkIKB1NlbmRPVFASGi5tYW50cmFlLnYxLlNlbmRPVFBSZXF1ZXN0GhsubWFudHJhZS52MS5TZW5kT1RQUmVzcG9uc2USRwoHR2V0VXNlchIaLm1hbnRyYWUudjEuR2V0VXNlclJlcXVlc3QaGy5tYW50cmFlLnYxLkdldFVzZXJSZXNwb25zZSIDkAIBEksKCkNyZWF0ZVVzZXISHS5tYW50cmFlLnYxLkNyZWF0ZVVzZXJSZXF1ZXN0Gh4ubWFudHJhZS52MS5DcmVhdGVVc2VyUmVzcG9uc2USSwoKVXBkYXRlVXNlchIdLm1hbnRyYWUudjEuVXBkYXRlVXNlclJlcXVlc3QaHi5tYW50cmFlLnYxLlVwZGF0ZVVzZXJSZXNwb25zZRJLCgpEZWxldGVVc2VyEh0ubWFudHJhZS52MS5EZWxldGVVc2VyUmVxdWVzdBoeLm1hbnRyYWUudjEuRGVsZXRlVXNlclJlc3BvbnNlEk0KCUxpc3RVc2VycxIcLm1hbnRyYWUudjEuTGlzdFVzZXJzUmVxdWVzdBodLm1hbnRyYWUudjEuTGlzdFVzZXJzUmVzcG9uc2UiA5ACARJUCg1HZXRPSURDU3RhdHVzEiAubWFudHJhZS52MS5HZXRPSURDU3RhdHVzUmVxdWVzdBohLm1hbnRyYWUudjEuR2V0T0lEQ1N0YXR1c1Jlc3BvbnNlQqMBCg5jb20ubWFudHJhZS52MUIJVXNlclByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp]);
export const file_mantrae_v1_user: GenFile =
/*@__PURE__*/
fileDesc(
'ChVtYW50cmFlL3YxL3VzZXIucHJvdG8SCm1hbnRyYWUudjEikgIKBFVzZXISCgoCaWQYASABKAkSEAoIdXNlcm5hbWUYAiABKAkSEAoIcGFzc3dvcmQYAyABKAkSDQoFZW1haWwYBCABKAkSCwoDb3RwGAYgASgJEi4KCm90cF9leHBpcnkYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmxhc3RfbG9naW4YCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wInwKEExvZ2luVXNlclJlcXVlc3QSGwoIdXNlcm5hbWUYASABKAlCB7pIBHICEANIABIYCgVlbWFpbBgCIAEoCUIHukgEcgJgAUgAEhwKCHBhc3N3b3JkGAMgASgJQgq6SAfIAQFyAhAIQhMKCmlkZW50aWZpZXISBbpIAggBIjMKEUxvZ2luVXNlclJlc3BvbnNlEh4KBHVzZXIYASABKAsyEC5tYW50cmFlLnYxLlVzZXIiEwoRTG9nb3V0VXNlclJlcXVlc3QiFAoSTG9nb3V0VXNlclJlc3BvbnNlInUKEFZlcmlmeU9UUFJlcXVlc3QSGwoIdXNlcm5hbWUYASABKAlCB7pIBHICEANIABIYCgVlbWFpbBgCIAEoCUIHukgEcgJgAUgAEhUKA290cBgDIAEoCUIIukgFcgOYAQZCEwoKaWRlbnRpZmllchIFukgCCAEiMwoRVmVyaWZ5T1RQUmVzcG9uc2USHgoEdXNlchgBIAEoCzIQLm1hbnRyYWUudjEuVXNlciJcCg5TZW5kT1RQUmVxdWVzdBIbCgh1c2VybmFtZRgBIAEoCUIHukgEcgIQA0gAEhgKBWVtYWlsGAIgASgJQge6SARyAmABSABCEwoKaWRlbnRpZmllchIFukgCCAEiEQoPU2VuZE9UUFJlc3BvbnNlImwKDkdldFVzZXJSZXF1ZXN0EhUKAmlkGAEgASgJQge6SARyAhABSAASGwoIdXNlcm5hbWUYAiABKAlCB7pIBHICEANIABIYCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgAQgwKCmlkZW50aWZpZXIiMQoPR2V0VXNlclJlc3BvbnNlEh4KBHVzZXIYASABKAsyEC5tYW50cmFlLnYxLlVzZXIicwoRQ3JlYXRlVXNlclJlcXVlc3QSGQoIdXNlcm5hbWUYASABKAlCB7pIBHICEAMSGQoIcGFzc3dvcmQYAiABKAlCB7pIBHICEAgSHgoFZW1haWwYAyABKAlCCrpIB9gBAHICYAFIAIgBAUIICgZfZW1haWwiNAoSQ3JlYXRlVXNlclJlc3BvbnNlEh4KBHVzZXIYASABKAsyEC5tYW50cmFlLnYxLlVzZXIinQEKEVVwZGF0ZVVzZXJSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhkKCHVzZXJuYW1lGAIgASgJQge6SARyAhADEh4KBWVtYWlsGAMgASgJQgq6SAfYAQByAmABSACIAQESIQoIcGFzc3dvcmQYBCABKAlCCrpIB9gBAHICEAhIAYgBAUIICgZfZW1haWxCCwoJX3Bhc3N3b3JkIjQKElVwZGF0ZVVzZXJSZXNwb25zZRIeCgR1c2VyGAEgASgLMhAubWFudHJhZS52MS5Vc2VyIigKEURlbGV0ZVVzZXJSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIhQKEkRlbGV0ZVVzZXJSZXNwb25zZSKxAQoQTGlzdFVzZXJzUmVxdWVzdBJqCgVsaW1pdBgBIAEoA0JWukhTugFQCgtsaW1pdC52YWxpZBIpbGltaXQgbXVzdCBiZSBlaXRoZXIgLTEgb3IgZ3JlYXRlciB0aGFuIDAaFnRoaXMgPT0gLTEgfHwgdGhpcyA+IDBIAIgBARIcCgZvZmZzZXQYAiABKANCB7pIBCICKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCJJChFMaXN0VXNlcnNSZXNwb25zZRIfCgV1c2VycxgBIAMoCzIQLm1hbnRyYWUudjEuVXNlchITCgt0b3RhbF9jb3VudBgCIAEoAyIWChRHZXRPSURDU3RhdHVzUmVxdWVzdCJWChVHZXRPSURDU3RhdHVzUmVzcG9uc2USFAoMb2lkY19lbmFibGVkGAEgASgIEhUKDWxvZ2luX2VuYWJsZWQYAiABKAgSEAoIcHJvdmlkZXIYAyABKAkyhwYKC1VzZXJTZXJ2aWNlEkgKCUxvZ2luVXNlchIcLm1hbnRyYWUudjEuTG9naW5Vc2VyUmVxdWVzdBodLm1hbnRyYWUudjEuTG9naW5Vc2VyUmVzcG9uc2USSwoKTG9nb3V0VXNlchIdLm1hbnRyYWUudjEuTG9nb3V0VXNlclJlcXVlc3QaHi5tYW50cmFlLnYxLkxvZ291dFVzZXJSZXNwb25zZRJICglWZXJpZnlPVFASHC5tYW50cmFlLnYxLlZlcmlmeU9UUFJlcXVlc3QaHS5tYW50cmFlLnYxLlZlcmlmeU9UUFJlc3BvbnNlEkIKB1NlbmRPVFASGi5tYW50cmFlLnYxLlNlbmRPVFBSZXF1ZXN0GhsubWFudHJhZS52MS5TZW5kT1RQUmVzcG9uc2USRwoHR2V0VXNlchIaLm1hbnRyYWUudjEuR2V0VXNlclJlcXVlc3QaGy5tYW50cmFlLnYxLkdldFVzZXJSZXNwb25zZSIDkAIBEksKCkNyZWF0ZVVzZXISHS5tYW50cmFlLnYxLkNyZWF0ZVVzZXJSZXF1ZXN0Gh4ubWFudHJhZS52MS5DcmVhdGVVc2VyUmVzcG9uc2USSwoKVXBkYXRlVXNlchIdLm1hbnRyYWUudjEuVXBkYXRlVXNlclJlcXVlc3QaHi5tYW50cmFlLnYxLlVwZGF0ZVVzZXJSZXNwb25zZRJLCgpEZWxldGVVc2VyEh0ubWFudHJhZS52MS5EZWxldGVVc2VyUmVxdWVzdBoeLm1hbnRyYWUudjEuRGVsZXRlVXNlclJlc3BvbnNlEk0KCUxpc3RVc2VycxIcLm1hbnRyYWUudjEuTGlzdFVzZXJzUmVxdWVzdBodLm1hbnRyYWUudjEuTGlzdFVzZXJzUmVzcG9uc2UiA5ACARJUCg1HZXRPSURDU3RhdHVzEiAubWFudHJhZS52MS5HZXRPSURDU3RhdHVzUmVxdWVzdBohLm1hbnRyYWUudjEuR2V0T0lEQ1N0YXR1c1Jlc3BvbnNlQqMBCg5jb20ubWFudHJhZS52MUIJVXNlclByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z',
[file_buf_validate_validate, file_google_protobuf_timestamp]
);
/**
* @generated from message mantrae.v1.User
*/
export type User = Message<"mantrae.v1.User"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type User = Message<'mantrae.v1.User'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string username = 2;
*/
username: string;
/**
* @generated from field: string username = 2;
*/
username: string;
/**
* @generated from field: string password = 3;
*/
password: string;
/**
* @generated from field: string password = 3;
*/
password: string;
/**
* @generated from field: string email = 4;
*/
email: string;
/**
* @generated from field: string email = 4;
*/
email: string;
/**
* @generated from field: string otp = 6;
*/
otp: string;
/**
* @generated from field: string otp = 6;
*/
otp: string;
/**
* @generated from field: google.protobuf.Timestamp otp_expiry = 7;
*/
otpExpiry?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp otp_expiry = 7;
*/
otpExpiry?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp last_login = 8;
*/
lastLogin?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp last_login = 8;
*/
lastLogin?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp created_at = 9;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp updated_at = 10;
*/
updatedAt?: Timestamp;
};
/**
* Describes the message mantrae.v1.User.
* Use `create(UserSchema)` to create a new message.
*/
export const UserSchema: GenMessage<User> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 0);
export const UserSchema: GenMessage<User> = /*@__PURE__*/ messageDesc(file_mantrae_v1_user, 0);
/**
* @generated from message mantrae.v1.LoginUserRequest
*/
export type LoginUserRequest = Message<"mantrae.v1.LoginUserRequest"> & {
/**
* @generated from oneof mantrae.v1.LoginUserRequest.identifier
*/
identifier: {
/**
* @generated from field: string username = 1;
*/
value: string;
case: "username";
} | {
/**
* @generated from field: string email = 2;
*/
value: string;
case: "email";
} | { case: undefined; value?: undefined };
export type LoginUserRequest = Message<'mantrae.v1.LoginUserRequest'> & {
/**
* @generated from oneof mantrae.v1.LoginUserRequest.identifier
*/
identifier:
| {
/**
* @generated from field: string username = 1;
*/
value: string;
case: 'username';
}
| {
/**
* @generated from field: string email = 2;
*/
value: string;
case: 'email';
}
| { case: undefined; value?: undefined };
/**
* @generated from field: string password = 3;
*/
password: string;
/**
* @generated from field: string password = 3;
*/
password: string;
};
/**
* Describes the message mantrae.v1.LoginUserRequest.
* Use `create(LoginUserRequestSchema)` to create a new message.
*/
export const LoginUserRequestSchema: GenMessage<LoginUserRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 1);
export const LoginUserRequestSchema: GenMessage<LoginUserRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 1);
/**
* @generated from message mantrae.v1.LoginUserResponse
*/
export type LoginUserResponse = Message<"mantrae.v1.LoginUserResponse"> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
export type LoginUserResponse = Message<'mantrae.v1.LoginUserResponse'> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
};
/**
* Describes the message mantrae.v1.LoginUserResponse.
* Use `create(LoginUserResponseSchema)` to create a new message.
*/
export const LoginUserResponseSchema: GenMessage<LoginUserResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 2);
export const LoginUserResponseSchema: GenMessage<LoginUserResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 2);
/**
* @generated from message mantrae.v1.LogoutUserRequest
*/
export type LogoutUserRequest = Message<"mantrae.v1.LogoutUserRequest"> & {
};
export type LogoutUserRequest = Message<'mantrae.v1.LogoutUserRequest'> & {};
/**
* Describes the message mantrae.v1.LogoutUserRequest.
* Use `create(LogoutUserRequestSchema)` to create a new message.
*/
export const LogoutUserRequestSchema: GenMessage<LogoutUserRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 3);
export const LogoutUserRequestSchema: GenMessage<LogoutUserRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 3);
/**
* @generated from message mantrae.v1.LogoutUserResponse
*/
export type LogoutUserResponse = Message<"mantrae.v1.LogoutUserResponse"> & {
};
export type LogoutUserResponse = Message<'mantrae.v1.LogoutUserResponse'> & {};
/**
* Describes the message mantrae.v1.LogoutUserResponse.
* Use `create(LogoutUserResponseSchema)` to create a new message.
*/
export const LogoutUserResponseSchema: GenMessage<LogoutUserResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 4);
export const LogoutUserResponseSchema: GenMessage<LogoutUserResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 4);
/**
* @generated from message mantrae.v1.VerifyOTPRequest
*/
export type VerifyOTPRequest = Message<"mantrae.v1.VerifyOTPRequest"> & {
/**
* @generated from oneof mantrae.v1.VerifyOTPRequest.identifier
*/
identifier: {
/**
* @generated from field: string username = 1;
*/
value: string;
case: "username";
} | {
/**
* @generated from field: string email = 2;
*/
value: string;
case: "email";
} | { case: undefined; value?: undefined };
export type VerifyOTPRequest = Message<'mantrae.v1.VerifyOTPRequest'> & {
/**
* @generated from oneof mantrae.v1.VerifyOTPRequest.identifier
*/
identifier:
| {
/**
* @generated from field: string username = 1;
*/
value: string;
case: 'username';
}
| {
/**
* @generated from field: string email = 2;
*/
value: string;
case: 'email';
}
| { case: undefined; value?: undefined };
/**
* @generated from field: string otp = 3;
*/
otp: string;
/**
* @generated from field: string otp = 3;
*/
otp: string;
};
/**
* Describes the message mantrae.v1.VerifyOTPRequest.
* Use `create(VerifyOTPRequestSchema)` to create a new message.
*/
export const VerifyOTPRequestSchema: GenMessage<VerifyOTPRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 5);
export const VerifyOTPRequestSchema: GenMessage<VerifyOTPRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 5);
/**
* @generated from message mantrae.v1.VerifyOTPResponse
*/
export type VerifyOTPResponse = Message<"mantrae.v1.VerifyOTPResponse"> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
export type VerifyOTPResponse = Message<'mantrae.v1.VerifyOTPResponse'> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
};
/**
* Describes the message mantrae.v1.VerifyOTPResponse.
* Use `create(VerifyOTPResponseSchema)` to create a new message.
*/
export const VerifyOTPResponseSchema: GenMessage<VerifyOTPResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 6);
export const VerifyOTPResponseSchema: GenMessage<VerifyOTPResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 6);
/**
* @generated from message mantrae.v1.SendOTPRequest
*/
export type SendOTPRequest = Message<"mantrae.v1.SendOTPRequest"> & {
/**
* @generated from oneof mantrae.v1.SendOTPRequest.identifier
*/
identifier: {
/**
* @generated from field: string username = 1;
*/
value: string;
case: "username";
} | {
/**
* @generated from field: string email = 2;
*/
value: string;
case: "email";
} | { case: undefined; value?: undefined };
export type SendOTPRequest = Message<'mantrae.v1.SendOTPRequest'> & {
/**
* @generated from oneof mantrae.v1.SendOTPRequest.identifier
*/
identifier:
| {
/**
* @generated from field: string username = 1;
*/
value: string;
case: 'username';
}
| {
/**
* @generated from field: string email = 2;
*/
value: string;
case: 'email';
}
| { case: undefined; value?: undefined };
};
/**
* Describes the message mantrae.v1.SendOTPRequest.
* Use `create(SendOTPRequestSchema)` to create a new message.
*/
export const SendOTPRequestSchema: GenMessage<SendOTPRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 7);
export const SendOTPRequestSchema: GenMessage<SendOTPRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 7);
/**
* @generated from message mantrae.v1.SendOTPResponse
*/
export type SendOTPResponse = Message<"mantrae.v1.SendOTPResponse"> & {
};
export type SendOTPResponse = Message<'mantrae.v1.SendOTPResponse'> & {};
/**
* Describes the message mantrae.v1.SendOTPResponse.
* Use `create(SendOTPResponseSchema)` to create a new message.
*/
export const SendOTPResponseSchema: GenMessage<SendOTPResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 8);
export const SendOTPResponseSchema: GenMessage<SendOTPResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 8);
/**
* @generated from message mantrae.v1.GetUserRequest
*/
export type GetUserRequest = Message<"mantrae.v1.GetUserRequest"> & {
/**
* @generated from oneof mantrae.v1.GetUserRequest.identifier
*/
identifier: {
/**
* @generated from field: string id = 1;
*/
value: string;
case: "id";
} | {
/**
* @generated from field: string username = 2;
*/
value: string;
case: "username";
} | {
/**
* @generated from field: string email = 3;
*/
value: string;
case: "email";
} | { case: undefined; value?: undefined };
export type GetUserRequest = Message<'mantrae.v1.GetUserRequest'> & {
/**
* @generated from oneof mantrae.v1.GetUserRequest.identifier
*/
identifier:
| {
/**
* @generated from field: string id = 1;
*/
value: string;
case: 'id';
}
| {
/**
* @generated from field: string username = 2;
*/
value: string;
case: 'username';
}
| {
/**
* @generated from field: string email = 3;
*/
value: string;
case: 'email';
}
| { case: undefined; value?: undefined };
};
/**
* Describes the message mantrae.v1.GetUserRequest.
* Use `create(GetUserRequestSchema)` to create a new message.
*/
export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 9);
export const GetUserRequestSchema: GenMessage<GetUserRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 9);
/**
* @generated from message mantrae.v1.GetUserResponse
*/
export type GetUserResponse = Message<"mantrae.v1.GetUserResponse"> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
export type GetUserResponse = Message<'mantrae.v1.GetUserResponse'> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
};
/**
* Describes the message mantrae.v1.GetUserResponse.
* Use `create(GetUserResponseSchema)` to create a new message.
*/
export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 10);
export const GetUserResponseSchema: GenMessage<GetUserResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 10);
/**
* @generated from message mantrae.v1.CreateUserRequest
*/
export type CreateUserRequest = Message<"mantrae.v1.CreateUserRequest"> & {
/**
* @generated from field: string username = 1;
*/
username: string;
export type CreateUserRequest = Message<'mantrae.v1.CreateUserRequest'> & {
/**
* @generated from field: string username = 1;
*/
username: string;
/**
* @generated from field: string password = 2;
*/
password: string;
/**
* @generated from field: string password = 2;
*/
password: string;
/**
* @generated from field: optional string email = 3;
*/
email?: string;
/**
* @generated from field: optional string email = 3;
*/
email?: string;
};
/**
* Describes the message mantrae.v1.CreateUserRequest.
* Use `create(CreateUserRequestSchema)` to create a new message.
*/
export const CreateUserRequestSchema: GenMessage<CreateUserRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 11);
export const CreateUserRequestSchema: GenMessage<CreateUserRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 11);
/**
* @generated from message mantrae.v1.CreateUserResponse
*/
export type CreateUserResponse = Message<"mantrae.v1.CreateUserResponse"> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
export type CreateUserResponse = Message<'mantrae.v1.CreateUserResponse'> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
};
/**
* Describes the message mantrae.v1.CreateUserResponse.
* Use `create(CreateUserResponseSchema)` to create a new message.
*/
export const CreateUserResponseSchema: GenMessage<CreateUserResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 12);
export const CreateUserResponseSchema: GenMessage<CreateUserResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 12);
/**
* @generated from message mantrae.v1.UpdateUserRequest
*/
export type UpdateUserRequest = Message<"mantrae.v1.UpdateUserRequest"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type UpdateUserRequest = Message<'mantrae.v1.UpdateUserRequest'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string username = 2;
*/
username: string;
/**
* @generated from field: string username = 2;
*/
username: string;
/**
* @generated from field: optional string email = 3;
*/
email?: string;
/**
* @generated from field: optional string email = 3;
*/
email?: string;
/**
* @generated from field: optional string password = 4;
*/
password?: string;
/**
* @generated from field: optional string password = 4;
*/
password?: string;
};
/**
* Describes the message mantrae.v1.UpdateUserRequest.
* Use `create(UpdateUserRequestSchema)` to create a new message.
*/
export const UpdateUserRequestSchema: GenMessage<UpdateUserRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 13);
export const UpdateUserRequestSchema: GenMessage<UpdateUserRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 13);
/**
* @generated from message mantrae.v1.UpdateUserResponse
*/
export type UpdateUserResponse = Message<"mantrae.v1.UpdateUserResponse"> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
export type UpdateUserResponse = Message<'mantrae.v1.UpdateUserResponse'> & {
/**
* @generated from field: mantrae.v1.User user = 1;
*/
user?: User;
};
/**
* Describes the message mantrae.v1.UpdateUserResponse.
* Use `create(UpdateUserResponseSchema)` to create a new message.
*/
export const UpdateUserResponseSchema: GenMessage<UpdateUserResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 14);
export const UpdateUserResponseSchema: GenMessage<UpdateUserResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 14);
/**
* @generated from message mantrae.v1.DeleteUserRequest
*/
export type DeleteUserRequest = Message<"mantrae.v1.DeleteUserRequest"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
export type DeleteUserRequest = Message<'mantrae.v1.DeleteUserRequest'> & {
/**
* @generated from field: string id = 1;
*/
id: string;
};
/**
* Describes the message mantrae.v1.DeleteUserRequest.
* Use `create(DeleteUserRequestSchema)` to create a new message.
*/
export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 15);
export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 15);
/**
* @generated from message mantrae.v1.DeleteUserResponse
*/
export type DeleteUserResponse = Message<"mantrae.v1.DeleteUserResponse"> & {
};
export type DeleteUserResponse = Message<'mantrae.v1.DeleteUserResponse'> & {};
/**
* Describes the message mantrae.v1.DeleteUserResponse.
* Use `create(DeleteUserResponseSchema)` to create a new message.
*/
export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 16);
export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 16);
/**
* @generated from message mantrae.v1.ListUsersRequest
*/
export type ListUsersRequest = Message<"mantrae.v1.ListUsersRequest"> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
export type ListUsersRequest = Message<'mantrae.v1.ListUsersRequest'> & {
/**
* @generated from field: optional int64 limit = 1;
*/
limit?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
/**
* @generated from field: optional int64 offset = 2;
*/
offset?: bigint;
};
/**
* Describes the message mantrae.v1.ListUsersRequest.
* Use `create(ListUsersRequestSchema)` to create a new message.
*/
export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 17);
export const ListUsersRequestSchema: GenMessage<ListUsersRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 17);
/**
* @generated from message mantrae.v1.ListUsersResponse
*/
export type ListUsersResponse = Message<"mantrae.v1.ListUsersResponse"> & {
/**
* @generated from field: repeated mantrae.v1.User users = 1;
*/
users: User[];
export type ListUsersResponse = Message<'mantrae.v1.ListUsersResponse'> & {
/**
* @generated from field: repeated mantrae.v1.User users = 1;
*/
users: User[];
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
/**
* @generated from field: int64 total_count = 2;
*/
totalCount: bigint;
};
/**
* Describes the message mantrae.v1.ListUsersResponse.
* Use `create(ListUsersResponseSchema)` to create a new message.
*/
export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 18);
export const ListUsersResponseSchema: GenMessage<ListUsersResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 18);
/**
* @generated from message mantrae.v1.GetOIDCStatusRequest
*/
export type GetOIDCStatusRequest = Message<"mantrae.v1.GetOIDCStatusRequest"> & {
};
export type GetOIDCStatusRequest = Message<'mantrae.v1.GetOIDCStatusRequest'> & {};
/**
* Describes the message mantrae.v1.GetOIDCStatusRequest.
* Use `create(GetOIDCStatusRequestSchema)` to create a new message.
*/
export const GetOIDCStatusRequestSchema: GenMessage<GetOIDCStatusRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 19);
export const GetOIDCStatusRequestSchema: GenMessage<GetOIDCStatusRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 19);
/**
* @generated from message mantrae.v1.GetOIDCStatusResponse
*/
export type GetOIDCStatusResponse = Message<"mantrae.v1.GetOIDCStatusResponse"> & {
/**
* @generated from field: bool oidc_enabled = 1;
*/
oidcEnabled: boolean;
export type GetOIDCStatusResponse = Message<'mantrae.v1.GetOIDCStatusResponse'> & {
/**
* @generated from field: bool oidc_enabled = 1;
*/
oidcEnabled: boolean;
/**
* @generated from field: bool login_enabled = 2;
*/
loginEnabled: boolean;
/**
* @generated from field: bool login_enabled = 2;
*/
loginEnabled: boolean;
/**
* @generated from field: string provider = 3;
*/
provider: string;
/**
* @generated from field: string provider = 3;
*/
provider: string;
};
/**
* Describes the message mantrae.v1.GetOIDCStatusResponse.
* Use `create(GetOIDCStatusResponseSchema)` to create a new message.
*/
export const GetOIDCStatusResponseSchema: GenMessage<GetOIDCStatusResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_user, 20);
export const GetOIDCStatusResponseSchema: GenMessage<GetOIDCStatusResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_user, 20);
/**
* @generated from service mantrae.v1.UserService
*/
export const UserService: GenService<{
/**
* @generated from rpc mantrae.v1.UserService.LoginUser
*/
loginUser: {
methodKind: "unary";
input: typeof LoginUserRequestSchema;
output: typeof LoginUserResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.LogoutUser
*/
logoutUser: {
methodKind: "unary";
input: typeof LogoutUserRequestSchema;
output: typeof LogoutUserResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.VerifyOTP
*/
verifyOTP: {
methodKind: "unary";
input: typeof VerifyOTPRequestSchema;
output: typeof VerifyOTPResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.SendOTP
*/
sendOTP: {
methodKind: "unary";
input: typeof SendOTPRequestSchema;
output: typeof SendOTPResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.GetUser
*/
getUser: {
methodKind: "unary";
input: typeof GetUserRequestSchema;
output: typeof GetUserResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.CreateUser
*/
createUser: {
methodKind: "unary";
input: typeof CreateUserRequestSchema;
output: typeof CreateUserResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.UpdateUser
*/
updateUser: {
methodKind: "unary";
input: typeof UpdateUserRequestSchema;
output: typeof UpdateUserResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.DeleteUser
*/
deleteUser: {
methodKind: "unary";
input: typeof DeleteUserRequestSchema;
output: typeof DeleteUserResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.ListUsers
*/
listUsers: {
methodKind: "unary";
input: typeof ListUsersRequestSchema;
output: typeof ListUsersResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UserService.GetOIDCStatus
*/
getOIDCStatus: {
methodKind: "unary";
input: typeof GetOIDCStatusRequestSchema;
output: typeof GetOIDCStatusResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_user, 0);
/**
* @generated from rpc mantrae.v1.UserService.LoginUser
*/
loginUser: {
methodKind: 'unary';
input: typeof LoginUserRequestSchema;
output: typeof LoginUserResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.LogoutUser
*/
logoutUser: {
methodKind: 'unary';
input: typeof LogoutUserRequestSchema;
output: typeof LogoutUserResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.VerifyOTP
*/
verifyOTP: {
methodKind: 'unary';
input: typeof VerifyOTPRequestSchema;
output: typeof VerifyOTPResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.SendOTP
*/
sendOTP: {
methodKind: 'unary';
input: typeof SendOTPRequestSchema;
output: typeof SendOTPResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.GetUser
*/
getUser: {
methodKind: 'unary';
input: typeof GetUserRequestSchema;
output: typeof GetUserResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.CreateUser
*/
createUser: {
methodKind: 'unary';
input: typeof CreateUserRequestSchema;
output: typeof CreateUserResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.UpdateUser
*/
updateUser: {
methodKind: 'unary';
input: typeof UpdateUserRequestSchema;
output: typeof UpdateUserResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.DeleteUser
*/
deleteUser: {
methodKind: 'unary';
input: typeof DeleteUserRequestSchema;
output: typeof DeleteUserResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.ListUsers
*/
listUsers: {
methodKind: 'unary';
input: typeof ListUsersRequestSchema;
output: typeof ListUsersResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UserService.GetOIDCStatus
*/
getOIDCStatus: {
methodKind: 'unary';
input: typeof GetOIDCStatusRequestSchema;
output: typeof GetOIDCStatusResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_user, 0);

View File

@@ -2,101 +2,290 @@
// @generated from file mantrae/v1/util.proto (package mantrae.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";
import type { GenEnum, GenFile, GenMessage, GenService } from '@bufbuild/protobuf/codegenv2';
import { enumDesc, fileDesc, messageDesc, serviceDesc } from '@bufbuild/protobuf/codegenv2';
import { file_buf_validate_validate } from '../../buf/validate/validate_pb';
import type { Agent } from './agent_pb';
import { file_mantrae_v1_agent } from './agent_pb';
import type { DnsProvider } from './dns_provider_pb';
import { file_mantrae_v1_dns_provider } from './dns_provider_pb';
import type { EntryPoint } from './entry_point_pb';
import { file_mantrae_v1_entry_point } from './entry_point_pb';
import type { Middleware } from './middleware_pb';
import { file_mantrae_v1_middleware } from './middleware_pb';
import type { Profile } from './profile_pb';
import { file_mantrae_v1_profile } from './profile_pb';
import type { Router } from './router_pb';
import { file_mantrae_v1_router } from './router_pb';
import type { ServersTransport } from './servers_transport_pb';
import { file_mantrae_v1_servers_transport } from './servers_transport_pb';
import type { Service } from './service_pb';
import { file_mantrae_v1_service } from './service_pb';
import type { TraefikInstance } from './traefik_instance_pb';
import { file_mantrae_v1_traefik_instance } from './traefik_instance_pb';
import type { User } from './user_pb';
import { file_mantrae_v1_user } from './user_pb';
import type { Message } from '@bufbuild/protobuf';
/**
* Describes the file mantrae/v1/util.proto.
*/
export const file_mantrae_v1_util: GenFile = /*@__PURE__*/
fileDesc("ChVtYW50cmFlL3YxL3V0aWwucHJvdG8SCm1hbnRyYWUudjEiEwoRR2V0VmVyc2lvblJlcXVlc3QiJQoSR2V0VmVyc2lvblJlc3BvbnNlEg8KB3ZlcnNpb24YASABKAkiFAoSR2V0UHVibGljSVBSZXF1ZXN0IjEKE0dldFB1YmxpY0lQUmVzcG9uc2USDAoEaXB2NBgBIAEoCRIMCgRpcHY2GAIgASgJMqoBCgtVdGlsU2VydmljZRJLCgpHZXRWZXJzaW9uEh0ubWFudHJhZS52MS5HZXRWZXJzaW9uUmVxdWVzdBoeLm1hbnRyYWUudjEuR2V0VmVyc2lvblJlc3BvbnNlEk4KC0dldFB1YmxpY0lQEh4ubWFudHJhZS52MS5HZXRQdWJsaWNJUFJlcXVlc3QaHy5tYW50cmFlLnYxLkdldFB1YmxpY0lQUmVzcG9uc2VCowEKDmNvbS5tYW50cmFlLnYxQglVdGlsUHJvdG9QAVo9Z2l0aHViLmNvbS9taXp1Y2hpbGFicy9tYW50cmFlL3Byb3RvL2dlbi9tYW50cmFlL3YxO21hbnRyYWV2MaICA01YWKoCCk1hbnRyYWUuVjHKAgpNYW50cmFlXFYx4gIWTWFudHJhZVxWMVxHUEJNZXRhZGF0YeoCC01hbnRyYWU6OlYxYgZwcm90bzM");
export const file_mantrae_v1_util: GenFile =
/*@__PURE__*/
fileDesc(
'ChVtYW50cmFlL3YxL3V0aWwucHJvdG8SCm1hbnRyYWUudjEiEwoRR2V0VmVyc2lvblJlcXVlc3QiJQoSR2V0VmVyc2lvblJlc3BvbnNlEg8KB3ZlcnNpb24YASABKAkiFAoSR2V0UHVibGljSVBSZXF1ZXN0IjEKE0dldFB1YmxpY0lQUmVzcG9uc2USDAoEaXB2NBgBIAEoCRIMCgRpcHY2GAIgASgJIjEKEkV2ZW50U3RyZWFtUmVxdWVzdBIbCgpwcm9maWxlX2lkGAEgASgDQge6SAQiAiAAIoQEChNFdmVudFN0cmVhbVJlc3BvbnNlEicKBmFjdGlvbhgBIAEoDjIXLm1hbnRyYWUudjEuRXZlbnRBY3Rpb24SJgoHcHJvZmlsZRgCIAEoCzITLm1hbnRyYWUudjEuUHJvZmlsZUgAEiAKBHVzZXIYAyABKAsyEC5tYW50cmFlLnYxLlVzZXJIABIiCgVhZ2VudBgEIAEoCzIRLm1hbnRyYWUudjEuQWdlbnRIABIvCgxkbnNfcHJvdmlkZXIYBSABKAsyFy5tYW50cmFlLnYxLkRuc1Byb3ZpZGVySAASNwoQdHJhZWZpa19pbnN0YW5jZRgGIAEoCzIbLm1hbnRyYWUudjEuVHJhZWZpa0luc3RhbmNlSAASJAoGcm91dGVyGAcgASgLMhIubWFudHJhZS52MS5Sb3V0ZXJIABImCgdzZXJ2aWNlGAggASgLMhMubWFudHJhZS52MS5TZXJ2aWNlSAASLAoKbWlkZGxld2FyZRgJIAEoCzIWLm1hbnRyYWUudjEuTWlkZGxld2FyZUgAEjkKEXNlcnZlcnNfdHJhbnNwb3J0GAogASgLMhwubWFudHJhZS52MS5TZXJ2ZXJzVHJhbnNwb3J0SAASLQoLZW50cnlfcG9pbnQYCyABKAsyFi5tYW50cmFlLnYxLkVudHJ5UG9pbnRIAEIGCgRkYXRhKnkKC0V2ZW50QWN0aW9uEhwKGEVWRU5UX0FDVElPTl9VTlNQRUNJRklFRBAAEhgKFEVWRU5UX0FDVElPTl9DUkVBVEVEEAESGAoURVZFTlRfQUNUSU9OX1VQREFURUQQAhIYChRFVkVOVF9BQ1RJT05fREVMRVRFRBADMvwBCgtVdGlsU2VydmljZRJLCgpHZXRWZXJzaW9uEh0ubWFudHJhZS52MS5HZXRWZXJzaW9uUmVxdWVzdBoeLm1hbnRyYWUudjEuR2V0VmVyc2lvblJlc3BvbnNlEk4KC0dldFB1YmxpY0lQEh4ubWFudHJhZS52MS5HZXRQdWJsaWNJUFJlcXVlc3QaHy5tYW50cmFlLnYxLkdldFB1YmxpY0lQUmVzcG9uc2USUAoLRXZlbnRTdHJlYW0SHi5tYW50cmFlLnYxLkV2ZW50U3RyZWFtUmVxdWVzdBofLm1hbnRyYWUudjEuRXZlbnRTdHJlYW1SZXNwb25zZTABQqMBCg5jb20ubWFudHJhZS52MUIJVXRpbFByb3RvUAFaPWdpdGh1Yi5jb20vbWl6dWNoaWxhYnMvbWFudHJhZS9wcm90by9nZW4vbWFudHJhZS92MTttYW50cmFldjGiAgNNWFiqAgpNYW50cmFlLlYxygIKTWFudHJhZVxWMeICFk1hbnRyYWVcVjFcR1BCTWV0YWRhdGHqAgtNYW50cmFlOjpWMWIGcHJvdG8z',
[
file_buf_validate_validate,
file_mantrae_v1_agent,
file_mantrae_v1_dns_provider,
file_mantrae_v1_entry_point,
file_mantrae_v1_middleware,
file_mantrae_v1_profile,
file_mantrae_v1_router,
file_mantrae_v1_servers_transport,
file_mantrae_v1_service,
file_mantrae_v1_traefik_instance,
file_mantrae_v1_user
]
);
/**
* @generated from message mantrae.v1.GetVersionRequest
*/
export type GetVersionRequest = Message<"mantrae.v1.GetVersionRequest"> & {
};
export type GetVersionRequest = Message<'mantrae.v1.GetVersionRequest'> & {};
/**
* Describes the message mantrae.v1.GetVersionRequest.
* Use `create(GetVersionRequestSchema)` to create a new message.
*/
export const GetVersionRequestSchema: GenMessage<GetVersionRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_util, 0);
export const GetVersionRequestSchema: GenMessage<GetVersionRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_util, 0);
/**
* @generated from message mantrae.v1.GetVersionResponse
*/
export type GetVersionResponse = Message<"mantrae.v1.GetVersionResponse"> & {
/**
* @generated from field: string version = 1;
*/
version: string;
export type GetVersionResponse = Message<'mantrae.v1.GetVersionResponse'> & {
/**
* @generated from field: string version = 1;
*/
version: string;
};
/**
* Describes the message mantrae.v1.GetVersionResponse.
* Use `create(GetVersionResponseSchema)` to create a new message.
*/
export const GetVersionResponseSchema: GenMessage<GetVersionResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_util, 1);
export const GetVersionResponseSchema: GenMessage<GetVersionResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_util, 1);
/**
* @generated from message mantrae.v1.GetPublicIPRequest
*/
export type GetPublicIPRequest = Message<"mantrae.v1.GetPublicIPRequest"> & {
};
export type GetPublicIPRequest = Message<'mantrae.v1.GetPublicIPRequest'> & {};
/**
* Describes the message mantrae.v1.GetPublicIPRequest.
* Use `create(GetPublicIPRequestSchema)` to create a new message.
*/
export const GetPublicIPRequestSchema: GenMessage<GetPublicIPRequest> = /*@__PURE__*/
messageDesc(file_mantrae_v1_util, 2);
export const GetPublicIPRequestSchema: GenMessage<GetPublicIPRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_util, 2);
/**
* @generated from message mantrae.v1.GetPublicIPResponse
*/
export type GetPublicIPResponse = Message<"mantrae.v1.GetPublicIPResponse"> & {
/**
* @generated from field: string ipv4 = 1;
*/
ipv4: string;
export type GetPublicIPResponse = Message<'mantrae.v1.GetPublicIPResponse'> & {
/**
* @generated from field: string ipv4 = 1;
*/
ipv4: string;
/**
* @generated from field: string ipv6 = 2;
*/
ipv6: string;
/**
* @generated from field: string ipv6 = 2;
*/
ipv6: string;
};
/**
* Describes the message mantrae.v1.GetPublicIPResponse.
* Use `create(GetPublicIPResponseSchema)` to create a new message.
*/
export const GetPublicIPResponseSchema: GenMessage<GetPublicIPResponse> = /*@__PURE__*/
messageDesc(file_mantrae_v1_util, 3);
export const GetPublicIPResponseSchema: GenMessage<GetPublicIPResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_util, 3);
/**
* @generated from message mantrae.v1.EventStreamRequest
*/
export type EventStreamRequest = Message<'mantrae.v1.EventStreamRequest'> & {
/**
* @generated from field: int64 profile_id = 1;
*/
profileId: bigint;
};
/**
* Describes the message mantrae.v1.EventStreamRequest.
* Use `create(EventStreamRequestSchema)` to create a new message.
*/
export const EventStreamRequestSchema: GenMessage<EventStreamRequest> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_util, 4);
/**
* @generated from message mantrae.v1.EventStreamResponse
*/
export type EventStreamResponse = Message<'mantrae.v1.EventStreamResponse'> & {
/**
* @generated from field: mantrae.v1.EventAction action = 1;
*/
action: EventAction;
/**
* @generated from oneof mantrae.v1.EventStreamResponse.data
*/
data:
| {
/**
* @generated from field: mantrae.v1.Profile profile = 2;
*/
value: Profile;
case: 'profile';
}
| {
/**
* @generated from field: mantrae.v1.User user = 3;
*/
value: User;
case: 'user';
}
| {
/**
* @generated from field: mantrae.v1.Agent agent = 4;
*/
value: Agent;
case: 'agent';
}
| {
/**
* @generated from field: mantrae.v1.DnsProvider dns_provider = 5;
*/
value: DnsProvider;
case: 'dnsProvider';
}
| {
/**
* @generated from field: mantrae.v1.TraefikInstance traefik_instance = 6;
*/
value: TraefikInstance;
case: 'traefikInstance';
}
| {
/**
* @generated from field: mantrae.v1.Router router = 7;
*/
value: Router;
case: 'router';
}
| {
/**
* @generated from field: mantrae.v1.Service service = 8;
*/
value: Service;
case: 'service';
}
| {
/**
* @generated from field: mantrae.v1.Middleware middleware = 9;
*/
value: Middleware;
case: 'middleware';
}
| {
/**
* @generated from field: mantrae.v1.ServersTransport servers_transport = 10;
*/
value: ServersTransport;
case: 'serversTransport';
}
| {
/**
* @generated from field: mantrae.v1.EntryPoint entry_point = 11;
*/
value: EntryPoint;
case: 'entryPoint';
}
| { case: undefined; value?: undefined };
};
/**
* Describes the message mantrae.v1.EventStreamResponse.
* Use `create(EventStreamResponseSchema)` to create a new message.
*/
export const EventStreamResponseSchema: GenMessage<EventStreamResponse> =
/*@__PURE__*/
messageDesc(file_mantrae_v1_util, 5);
/**
* @generated from enum mantrae.v1.EventAction
*/
export enum EventAction {
/**
* @generated from enum value: EVENT_ACTION_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: EVENT_ACTION_CREATED = 1;
*/
CREATED = 1,
/**
* @generated from enum value: EVENT_ACTION_UPDATED = 2;
*/
UPDATED = 2,
/**
* @generated from enum value: EVENT_ACTION_DELETED = 3;
*/
DELETED = 3
}
/**
* Describes the enum mantrae.v1.EventAction.
*/
export const EventActionSchema: GenEnum<EventAction> =
/*@__PURE__*/
enumDesc(file_mantrae_v1_util, 0);
/**
* @generated from service mantrae.v1.UtilService
*/
export const UtilService: GenService<{
/**
* @generated from rpc mantrae.v1.UtilService.GetVersion
*/
getVersion: {
methodKind: "unary";
input: typeof GetVersionRequestSchema;
output: typeof GetVersionResponseSchema;
},
/**
* @generated from rpc mantrae.v1.UtilService.GetPublicIP
*/
getPublicIP: {
methodKind: "unary";
input: typeof GetPublicIPRequestSchema;
output: typeof GetPublicIPResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_mantrae_v1_util, 0);
/**
* @generated from rpc mantrae.v1.UtilService.GetVersion
*/
getVersion: {
methodKind: 'unary';
input: typeof GetVersionRequestSchema;
output: typeof GetVersionResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UtilService.GetPublicIP
*/
getPublicIP: {
methodKind: 'unary';
input: typeof GetPublicIPRequestSchema;
output: typeof GetPublicIPResponseSchema;
};
/**
* @generated from rpc mantrae.v1.UtilService.EventStream
*/
eventStream: {
methodKind: 'server_streaming';
input: typeof EventStreamRequestSchema;
output: typeof EventStreamResponseSchema;
};
}> = /*@__PURE__*/ serviceDesc(file_mantrae_v1_util, 0);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,262 @@
import { EventAction, type EventStreamResponse } from '$lib/gen/mantrae/v1/util_pb';
import { utilClient, entryPointClient, middlewareClient, dnsClient } from '$lib/api';
import { profile } from './profile';
import { writable } from 'svelte/store';
import type { ConnectError } from '@connectrpc/connect';
import type { Profile } from '$lib/gen/mantrae/v1/profile_pb';
import type { User } from '$lib/gen/mantrae/v1/user_pb';
import type { Agent } from '$lib/gen/mantrae/v1/agent_pb';
import type { EntryPoint } from '$lib/gen/mantrae/v1/entry_point_pb';
import type { Router } from '$lib/gen/mantrae/v1/router_pb';
import type { Service } from '$lib/gen/mantrae/v1/service_pb';
import type { Middleware } from '$lib/gen/mantrae/v1/middleware_pb';
import type { ServersTransport } from '$lib/gen/mantrae/v1/servers_transport_pb';
import type { DnsProvider } from '$lib/gen/mantrae/v1/dns_provider_pb';
import type { TraefikInstance } from '$lib/gen/mantrae/v1/traefik_instance_pb';
export const profiles = writable<Profile[]>([]);
export const users = writable<User[]>([]);
export const agents = writable<Agent[]>([]);
export const entryPoints = writable<EntryPoint[]>([]);
export const routers = writable<Router[]>([]);
export const services = writable<Service[]>([]);
export const middlewares = writable<Middleware[]>([]);
export const serversTransports = writable<ServersTransport[]>([]);
export const dnsProviders = writable<DnsProvider[]>([]);
export const traefikInstances = writable<TraefikInstance[]>([]);
let currentStream: AbortController | null = null;
export async function subscribe() {
if (!profile.isValid()) return;
// Cleanup previous connection
if (currentStream) {
currentStream.abort();
}
currentStream = new AbortController();
try {
const stream = utilClient.eventStream(
{ profileId: profile.id },
{ signal: currentStream.signal }
);
for await (const event of stream) {
handleEvent(event);
}
} catch (error) {
const err = error as ConnectError;
if (err.name !== 'canceled') {
console.error('Event stream error:', err.message);
// Retry connection after delay
setTimeout(subscribe, 5000);
}
}
}
export function unsubscribe() {
if (currentStream) {
currentStream.abort();
currentStream = null;
}
}
function handleEvent(event: EventStreamResponse) {
const action = event.action;
switch (action) {
case EventAction.CREATED:
switch (event.data.case) {
case 'profile': {
const data = event.data.value;
if (!data) return;
profiles.update((p) => p.concat(data));
break;
}
case 'user': {
const data = event.data.value;
if (!data) return;
users.update((u) => u.concat(data));
break;
}
case 'agent': {
const data = event.data.value;
if (!data) return;
agents.update((a) => a.concat(data));
break;
}
case 'entryPoint': {
const data = event.data.value;
if (!data) return;
entryPoints.update((e) => e.concat(data));
break;
}
case 'router': {
const data = event.data.value;
if (!data) return;
routers.update((r) => r.concat(data));
break;
}
case 'service': {
const data = event.data.value;
if (!data) return;
services.update((s) => s.concat(data));
break;
}
case 'middleware': {
const data = event.data.value;
if (!data) return;
middlewares.update((m) => m.concat(data));
break;
}
case 'serversTransport': {
const data = event.data.value;
if (!data) return;
serversTransports.update((s) => s.concat(data));
break;
}
case 'dnsProvider': {
const data = event.data.value;
if (!data) return;
dnsProviders.update((d) => d.concat(data));
break;
}
case 'traefikInstance': {
const data = event.data.value;
if (!data) return;
traefikInstances.update((t) => t.concat(data));
break;
}
}
break;
case EventAction.UPDATED:
switch (event.data.case) {
case 'profile': {
const data = event.data.value;
if (!data) return;
profiles.update((p) => p.map((p) => (p.id === data.id ? data : p)));
break;
}
case 'user': {
const data = event.data.value;
if (!data) return;
users.update((u) => u.map((u) => (u.id === data.id ? data : u)));
break;
}
case 'agent': {
const data = event.data.value;
if (!data) return;
agents.update((a) => a.map((a) => (a.id === data.id ? data : a)));
break;
}
case 'entryPoint': {
// Refetch since we might update multiple entry points
entryPointClient.listEntryPoints({ profileId: profile.id }).then((response) => {
entryPoints.set(response.entryPoints);
});
break;
}
case 'router': {
const data = event.data.value;
if (!data) return;
routers.update((r) => r.map((r) => (r.id === data.id ? data : r)));
break;
}
case 'service': {
const data = event.data.value;
if (!data) return;
services.update((s) => s.map((s) => (s.id === data.id ? data : s)));
break;
}
case 'middleware': {
middlewareClient.listMiddlewares({ profileId: profile.id }).then((response) => {
middlewares.set(response.middlewares);
});
break;
}
case 'serversTransport': {
const data = event.data.value;
if (!data) return;
serversTransports.update((s) => s.map((s) => (s.id === data.id ? data : s)));
break;
}
case 'dnsProvider': {
dnsClient.listDnsProviders({ profileId: profile.id }).then((response) => {
dnsProviders.set(response.dnsProviders);
});
break;
}
case 'traefikInstance': {
const data = event.data.value;
if (!data) return;
traefikInstances.update((t) => t.map((t) => (t.id === data.id ? data : t)));
break;
}
}
break;
case EventAction.DELETED:
switch (event.data.case) {
case 'profile': {
const data = event.data.value;
if (!data) return;
profiles.update((p) => p.filter((p) => p.id !== data.id));
break;
}
case 'user': {
const data = event.data.value;
if (!data) return;
users.update((u) => u.filter((u) => u.id !== data.id));
break;
}
case 'agent': {
const data = event.data.value;
if (!data) return;
agents.update((a) => a.filter((a) => a.id !== data.id));
break;
}
case 'entryPoint': {
const data = event.data.value;
if (!data) return;
entryPoints.update((e) => e.filter((e) => e.id !== data.id));
break;
}
case 'router': {
const data = event.data.value;
if (!data) return;
routers.update((r) => r.filter((r) => r.id !== data.id));
break;
}
case 'service': {
const data = event.data.value;
if (!data) return;
services.update((s) => s.filter((s) => s.id !== data.id));
break;
}
case 'middleware': {
const data = event.data.value;
if (!data) return;
middlewares.update((m) => m.filter((m) => m.id !== data.id));
break;
}
case 'serversTransport': {
const data = event.data.value;
if (!data) return;
serversTransports.update((s) => s.filter((s) => s.id !== data.id));
break;
}
case 'dnsProvider': {
const data = event.data.value;
if (!data) return;
dnsProviders.update((d) => d.filter((d) => d.id !== data.id));
break;
}
case 'traefikInstance': {
const data = event.data.value;
if (!data) return;
traefikInstances.update((t) => t.filter((t) => t.id !== data.id));
break;
}
}
break;
}
}

View File

@@ -9,11 +9,22 @@
import { user } from '$lib/stores/user';
import { page } from '$app/state';
import '../app.css';
import { onDestroy, onMount } from 'svelte';
import { subscribe, unsubscribe } from '$lib/stores/realtime';
interface Props {
children?: import('svelte').Snippet;
}
let { children }: Props = $props();
onMount(async () => {
if (user.isLoggedIn()) {
await subscribe();
}
});
onDestroy(() => {
unsubscribe();
});
</script>
<ModeWatcher />

View File

@@ -2,7 +2,6 @@
import * as Card from '$lib/components/ui/card/index.js';
import { Badge } from '$lib/components/ui/badge/index.js';
import { Button } from '$lib/components/ui/button/index.js';
import { Progress } from '$lib/components/ui/progress/index.js';
import { Separator } from '$lib/components/ui/separator/index.js';
import {
Globe,
@@ -44,17 +43,25 @@
import AuditLogModal from '$lib/components/modals/AuditLogModal.svelte';
import TraefikConnection from '$lib/components/utils/TraefikConnection.svelte';
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
import {
agents,
dnsProviders,
middlewares,
profiles,
routers,
services,
traefikInstances,
users
} from '$lib/stores/realtime';
import { onMount } from 'svelte';
let onlineAgents = $derived.by(async () => {
const response = await agentClient.listAgents({ profileId: profile.id });
const now = Date.now();
let activeAgents = response.agents.reduce((count, agent) => {
let onlineAgents = $derived.by(() => {
let activeAgents = $agents.reduce((count, agent) => {
if (!agent.updatedAt) return 0;
const lastSeen = new Date(timestampDate(agent.updatedAt));
const diffSeconds = (now - lastSeen.getTime()) / 1000;
const diffSeconds = (Date.now() - lastSeen.getTime()) / 1000;
return diffSeconds <= 30 ? count + 1 : count;
return diffSeconds <= 20 ? count + 1 : count;
}, 0);
return BigInt(activeAgents);
});
@@ -85,6 +92,34 @@
let modalProfileOpen = $state(false);
let modalConfigOpen = $state(false);
let modalAuditLogOpen = $state(false);
onMount(async () => {
const p = await profileClient.listProfiles({});
profiles.set(p.profiles);
const u = await userClient.listUsers({});
users.set(u.users);
const d = await dnsClient.listDnsProviders({});
dnsProviders.set(d.dnsProviders);
if (profile.isValid()) {
const a = await agentClient.listAgents({ profileId: profile.id });
agents.set(a.agents);
const r = await routerClient.listRouters({ profileId: profile.id });
routers.set(r.routers);
const s = await serviceClient.listServices({ profileId: profile.id });
services.set(s.services);
const m = await middlewareClient.listMiddlewares({ profileId: profile.id });
middlewares.set(m.middlewares);
const i = await traefikClient.listTraefikInstances({ profileId: profile.id });
traefikInstances.set(i.traefikInstances);
}
});
</script>
<ProfileModal bind:item={modalProfile} bind:open={modalProfileOpen} />
@@ -115,13 +150,11 @@
<Layers2 class="text-muted-foreground h-4 w-4" />
</Card.Header>
<Card.Content>
{#await profileClient.listProfiles({}) then result}
<div class="text-3xl font-bold">{result.totalCount}</div>
<div class="mt-2 flex items-center text-sm">
<TrendingUp class="mr-1 h-3 w-3 text-green-500" />
<span class="text-green-500">Active configurations</span>
</div>
{/await}
<div class="text-3xl font-bold">{$profiles?.length}</div>
<div class="mt-2 flex items-center text-sm">
<TrendingUp class="mr-1 h-3 w-3 text-green-500" />
<span class="text-green-500">Active configurations</span>
</div>
</Card.Content>
<div
class="from-primary/5 absolute top-0 right-0 h-16 w-16 rounded-bl-full bg-gradient-to-bl to-transparent"
@@ -136,15 +169,11 @@
<Bot class="text-muted-foreground h-4 w-4" />
</Card.Header>
<Card.Content>
{#await onlineAgents}
<div class="text-3xl font-bold">0</div>
{:then result}
<div class="text-3xl font-bold">{result}</div>
<div class="mt-2 flex items-center text-sm">
<Wifi class="mr-1 h-3 w-3 text-blue-500" />
<span class="text-blue-500">Online now</span>
</div>
{/await}
<div class="text-3xl font-bold">{onlineAgents}</div>
<div class="mt-2 flex items-center text-sm">
<Wifi class="mr-1 h-3 w-3 text-blue-500" />
<span class="text-blue-500">Online now</span>
</div>
</Card.Content>
<div
class="absolute top-0 right-0 h-16 w-16 rounded-bl-full bg-gradient-to-bl from-blue-500/5 to-transparent"
@@ -158,22 +187,20 @@
<Globe class="text-muted-foreground h-4 w-4" />
</Card.Header>
<Card.Content>
{#await dnsClient.listDnsProviders({}) then result}
<div class="text-3xl font-bold">
{result.totalCount}
</div>
<div class="mt-2 flex items-center text-sm">
{#if result.dnsProviders.find((p) => p.isDefault)}
<CheckCircle class="mr-1 h-3 w-3 text-green-500" />
{:else}
<AlertCircle class="mr-1 h-3 w-3 text-yellow-500" />
{/if}
<span class="text-muted-foreground">
{result.dnsProviders.find((p) => p.isDefault)?.name || 'None'}
set as default
</span>
</div>
{/await}
<div class="text-3xl font-bold">
{$dnsProviders?.length}
</div>
<div class="mt-2 flex items-center text-sm">
{#if $dnsProviders.find((p) => p.isDefault)}
<CheckCircle class="mr-1 h-3 w-3 text-green-500" />
{:else}
<AlertCircle class="mr-1 h-3 w-3 text-yellow-500" />
{/if}
<span class="text-muted-foreground">
{$dnsProviders.find((p) => p.isDefault)?.name || 'None'}
set as default
</span>
</div>
</Card.Content>
<div
class="absolute top-0 right-0 h-16 w-16 rounded-bl-full bg-gradient-to-bl from-green-500/5 to-transparent"
@@ -187,13 +214,11 @@
<Users class="text-muted-foreground h-4 w-4" />
</Card.Header>
<Card.Content>
{#await userClient.listUsers({}) then result}
<div class="text-3xl font-bold">{result.totalCount}</div>
<div class="mt-2 flex items-center text-sm">
<Shield class="mr-1 h-3 w-3 text-purple-500" />
<span class="text-muted-foreground">Access managed</span>
</div>
{/await}
<div class="text-3xl font-bold">{$users?.length}</div>
<div class="mt-2 flex items-center text-sm">
<Shield class="mr-1 h-3 w-3 text-purple-500" />
<span class="text-muted-foreground">Access managed</span>
</div>
</Card.Content>
<div
class="absolute top-0 right-0 h-16 w-16 rounded-bl-full bg-gradient-to-bl from-purple-500/5 to-transparent"
@@ -212,37 +237,35 @@
</Card.Title>
</Card.Header>
<Card.Content class="space-y-4">
{#await routerClient.listRouters({ profileId: profile.id }) then result}
<div class="space-y-3">
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-blue-500"></div>
<span class="text-sm">HTTP Routers</span>
</div>
<Badge variant="secondary">
{result.routers.filter((r) => r.type === ProtocolType.HTTP).length}
</Badge>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-green-500"></div>
<span class="text-sm">TCP Routers</span>
</div>
<Badge variant="secondary">
{result.routers.filter((r) => r.type === ProtocolType.TCP).length}
</Badge>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-purple-500"></div>
<span class="text-sm">UDP Routers</span>
</div>
<Badge variant="secondary">
{result.routers.filter((r) => r.type === ProtocolType.UDP).length}
</Badge>
<div class="space-y-3">
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-blue-500"></div>
<span class="text-sm">HTTP Routers</span>
</div>
<Badge variant="secondary">
{$routers.filter((r) => r.type === ProtocolType.HTTP).length}
</Badge>
</div>
{/await}
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-green-500"></div>
<span class="text-sm">TCP Routers</span>
</div>
<Badge variant="secondary">
{$routers.filter((r) => r.type === ProtocolType.TCP).length}
</Badge>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-purple-500"></div>
<span class="text-sm">UDP Routers</span>
</div>
<Badge variant="secondary">
{$routers.filter((r) => r.type === ProtocolType.UDP).length}
</Badge>
</div>
</div>
</Card.Content>
</Card.Root>
@@ -255,57 +278,53 @@
</Card.Title>
</Card.Header>
<Card.Content class="space-y-4">
{#await middlewareClient.listMiddlewares({ profileId: profile.id }) then result}
<div class="space-y-3">
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-red-500"></div>
<span class="text-sm">HTTP Middlewares</span>
</div>
<Badge variant="secondary">
{result.middlewares.filter((m) => m.type === ProtocolType.HTTP).length}
</Badge>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-yellow-500"></div>
<span class="text-sm">TCP Middlewares</span>
</div>
<Badge variant="secondary">
{result.middlewares.filter((m) => m.type === ProtocolType.TCP).length}
</Badge>
<div class="space-y-3">
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-red-500"></div>
<span class="text-sm">HTTP Middlewares</span>
</div>
<Badge variant="secondary">
{$middlewares.filter((m) => m.type === ProtocolType.HTTP).length}
</Badge>
</div>
{/await}
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-yellow-500"></div>
<span class="text-sm">TCP Middlewares</span>
</div>
<Badge variant="secondary">
{$middlewares.filter((m) => m.type === ProtocolType.TCP).length}
</Badge>
</div>
</div>
</Card.Content>
</Card.Root>
<!-- Instances Overview -->
<Card.Root>
{#await traefikClient.listTraefikInstances({ profileId: profile.id }) then result}
<Card.Header class="flex items-center justify-between">
<Card.Title class="flex items-center gap-2">
<Server class="h-5 w-5" />
Traefik Instances
</Card.Title>
<Badge variant="secondary">{result.totalCount}</Badge>
</Card.Header>
<Card.Content class="space-y-4">
<div class="max-h-64 space-y-2 overflow-y-auto pr-2">
{#each result.traefikInstances || [] as instance (instance.id)}
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-green-500"></div>
<span class="text-sm">{instance.name}</span>
</div>
<Badge variant="secondary">
{instance.url}
</Badge>
<Card.Header class="flex items-center justify-between">
<Card.Title class="flex items-center gap-2">
<Server class="h-5 w-5" />
Traefik Instances
</Card.Title>
<Badge variant="secondary">{$traefikInstances?.length}</Badge>
</Card.Header>
<Card.Content class="space-y-4">
<div class="max-h-64 space-y-2 overflow-y-auto pr-2">
{#each $traefikInstances || [] as instance (instance.id)}
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<div class="h-3 w-3 rounded-full bg-green-500"></div>
<span class="text-sm">{instance.name}</span>
</div>
{/each}
</div>
</Card.Content>
{/await}
<Badge variant="secondary">
{instance.url}
</Badge>
</div>
{/each}
</div>
</Card.Content>
</Card.Root>
</div>
@@ -327,138 +346,91 @@
</Card.Header>
<Card.Content>
<div class="space-y-4">
{#await profileClient.listProfiles({}) then result}
{#each result.profiles || [] as profile (profile.id)}
<div class="space-y-4 rounded-lg border p-4">
<div class="flex items-start justify-between">
<div class="flex items-start gap-3">
<div class="bg-primary/10 rounded-lg p-2">
<Database class="text-primary h-4 w-4" />
</div>
<div class="space-y-1">
<h3 class="text-lg font-semibold">{profile.name}</h3>
<p class="text-muted-foreground text-sm">{profile.description}</p>
<p class="text-muted-foreground text-xs">
{#if profile.createdAt}
Created {DateFormat.format(timestampDate(profile.createdAt))}
{/if}
</p>
</div>
{#each $profiles || [] as profile (profile.id)}
<div class="space-y-4 rounded-lg border p-4">
<div class="flex items-start justify-between">
<div class="flex items-start gap-3">
<div class="bg-primary/10 rounded-lg p-2">
<Database class="text-primary h-4 w-4" />
</div>
<div class="space-y-1">
<h3 class="text-lg font-semibold">{profile.name}</h3>
<p class="text-muted-foreground text-sm">{profile.description}</p>
<p class="text-muted-foreground text-xs">
{#if profile.createdAt}
Created {DateFormat.format(timestampDate(profile.createdAt))}
{/if}
</p>
</div>
</div>
</div>
<Separator />
<Separator />
<div class="grid grid-cols-2 gap-4 md:grid-cols-4">
{#await agentClient.listAgents({ profileId: profile.id }) then agentResult}
<div class="text-center">
<div class="text-2xl font-bold text-blue-600">{agentResult.totalCount}</div>
<div class="text-muted-foreground text-xs">Agents</div>
</div>
{/await}
{#await routerClient.listRouters({ profileId: profile.id }) then routerResult}
<div class="text-center">
<div class="text-2xl font-bold text-green-600">
{routerResult.totalCount}
</div>
<div class="text-muted-foreground text-xs">Routers</div>
</div>
{/await}
{#await serviceClient.listServices( { profileId: profile.id } ) then serviceResult}
<div class="text-center">
<div class="text-2xl font-bold text-orange-600">
{serviceResult.totalCount}
</div>
<div class="text-muted-foreground text-xs">Services</div>
</div>
{/await}
{#await middlewareClient.listMiddlewares( { profileId: profile.id } ) then middlewareResult}
<div class="text-center">
<div class="text-2xl font-bold text-purple-600">
{middlewareResult.totalCount}
</div>
<div class="text-muted-foreground text-xs">Middlewares</div>
</div>
{/await}
<div class="grid grid-cols-2 gap-4 md:grid-cols-4">
<div class="text-center">
<div class="text-2xl font-bold text-blue-600">{$agents?.length}</div>
<div class="text-muted-foreground text-xs">Agents</div>
</div>
<div class="grid grid-cols-1 gap-2 lg:grid-cols-3">
<Button
size="sm"
variant="outline"
class="gap-2"
onclick={() => {
modalProfile = profile;
modalProfileOpen = true;
}}
>
<Pen />
Edit
</Button>
<Button
size="sm"
variant="outline"
class="gap-2"
onclick={() => (modalConfigOpen = true)}
>
<Activity />
Config
</Button>
<TraefikConnection {profile} variant="compact" />
<div class="text-center">
<div class="text-2xl font-bold text-green-600">
{$routers?.length}
</div>
<div class="text-muted-foreground text-xs">Routers</div>
</div>
<div class="text-center">
<div class="text-2xl font-bold text-orange-600">
{$services?.length}
</div>
<div class="text-muted-foreground text-xs">Services</div>
</div>
<div class="text-center">
<div class="text-2xl font-bold text-purple-600">
{$middlewares?.length}
</div>
<div class="text-muted-foreground text-xs">Middlewares</div>
</div>
</div>
{/each}
{/await}
<div class="grid grid-cols-1 gap-2 lg:grid-cols-3">
<Button
size="sm"
variant="outline"
class="gap-2"
onclick={() => {
modalProfile = profile;
modalProfileOpen = true;
}}
>
<Pen />
Edit
</Button>
<Button
size="sm"
variant="outline"
class="gap-2"
onclick={() => (modalConfigOpen = true)}
>
<Activity />
Config
</Button>
<TraefikConnection {profile} variant="compact" />
</div>
</div>
{/each}
</div>
</Card.Content>
</Card.Root>
<!-- System Health & Quick Actions -->
<div class="space-y-6">
<!-- Traefik Connection -->
{#if profile.value}
<TraefikConnection profile={profile.value} variant="full" />
{/if}
<!-- System Health -->
<!-- <Card.Root> -->
<!-- <Card.Header> -->
<!-- <Card.Title class="flex items-center gap-2"> -->
<!-- <CheckCircle class="h-5 w-5 text-green-500" /> -->
<!-- System Health -->
<!-- </Card.Title> -->
<!-- </Card.Header> -->
<!-- <Card.Content class="space-y-4"> -->
<!-- <div class="space-y-3"> -->
<!-- <div class="flex items-center justify-between"> -->
<!-- <span class="text-sm">Configuration Valid</span> -->
<!-- <CheckCircle class="h-4 w-4 text-green-500" /> -->
<!-- </div> -->
<!-- <div class="flex items-center justify-between"> -->
<!-- <span class="text-sm">DNS Resolution</span> -->
<!-- <CheckCircle class="h-4 w-4 text-green-500" /> -->
<!-- </div> -->
<!-- <div class="flex items-center justify-between"> -->
<!-- <span class="text-sm">Agent Connectivity</span> -->
<!-- {#await Promise.all([totalAgents, onlineAgents]) then [total, online]} -->
<!-- {#if total === online} -->
<!-- <CheckCircle class="h-4 w-4 text-green-500" /> -->
<!-- {:else} -->
<!-- <AlertCircle class="h-4 w-4 text-yellow-500" /> -->
<!-- {/if} -->
<!-- {/await} -->
<!-- </div> -->
<!-- <div class="flex items-center justify-between"> -->
<!-- <span class="text-sm">SSL Certificates</span> -->
<!-- <AlertCircle class="h-4 w-4 text-yellow-500" /> -->
<!-- </div> -->
<!-- </div> -->
<!-- </Card.Content> -->
<!-- </Card.Root> -->
<!-- Recent Activity -->
<Card.Root>
<Card.Header class="flex items-center justify-between">

View File

@@ -7,22 +7,19 @@
import type { BulkAction } from '$lib/components/tables/types';
import { renderComponent } from '$lib/components/ui/data-table';
import type { Agent } from '$lib/gen/mantrae/v1/agent_pb';
import { DateFormat, pageIndex, pageSize } from '$lib/stores/common';
import { DateFormat } from '$lib/stores/common';
import { profile } from '$lib/stores/profile';
import { agents } from '$lib/stores/realtime';
import { timestampDate } from '@bufbuild/protobuf/wkt';
import { ConnectError } from '@connectrpc/connect';
import { Bot, KeyRound, Pencil, Trash } from '@lucide/svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import { onMount } from 'svelte';
import type { ColumnDef } from '@tanstack/table-core';
import { toast } from 'svelte-sonner';
import { readable } from 'svelte/store';
let item = $state({} as Agent);
let open = $state(false);
// Data state
let data = $state<Agent[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<Agent>[] = [
{
header: 'Hostname',
@@ -97,11 +94,17 @@
}
];
const now = readable(new Date(), (set) => {
const interval = setInterval(() => {
set(new Date());
}, 1000);
return () => clearInterval(interval);
});
function getAgentStatus(agent: Agent) {
if (!agent.updatedAt) return false;
const lastSeen = new Date(timestampDate(agent.updatedAt));
const lastSeenInSeconds = (new Date().getTime() - lastSeen.getTime()) / 1000;
return lastSeenInSeconds <= 60 ? true : false;
const lastSeenInSeconds = ($now.getTime() - lastSeen.getTime()) / 1000;
return lastSeenInSeconds <= 20 ? true : false;
}
const bulkActions: BulkAction<Agent>[] = [
@@ -114,14 +117,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
const deleteItem = async (item: Agent) => {
try {
await agentClient.deleteAgent({ id: item.id });
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Agent ${item.hostname ?? item.id} deleted`);
} catch (err) {
const e = ConnectError.from(err);
@@ -137,32 +135,19 @@
for (const row of rows) {
await agentClient.deleteAgent({ id: row.id });
}
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Successfully deleted ${rows.length} agents`);
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to delete agents', { description: e.message });
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await agentClient.listAgents({
profileId: profile.id,
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.agents;
rowCount = Number(response.totalCount);
}
async function createAgent() {
try {
const response = await agentClient.createAgent({ profileId: profile.id });
if (!response.agent) return;
item = response.agent;
toast.success('Agent created');
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
item = response.agent;
open = true;
} catch (err) {
const e = ConnectError.from(err);
@@ -170,8 +155,12 @@
}
}
onMount(async () => {
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
$effect(() => {
if (profile.isValid()) {
agentClient.listAgents({ profileId: profile.id }).then((response) => {
agents.set(response.agents);
});
}
});
</script>
@@ -193,10 +182,8 @@
</div>
<DataTable
{data}
data={$agents}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
rowClassModifiers={{
'bg-red-300/25 dark:bg-red-700/25': (r) => !getAgentStatus(r)
@@ -208,4 +195,4 @@
/>
</div>
<AgentModal bind:open bind:item bind:data />
<AgentModal bind:open bind:item />

View File

@@ -8,20 +8,16 @@
import type { BulkAction } from '$lib/components/tables/types';
import { renderComponent } from '$lib/components/ui/data-table';
import { DnsProviderType, type DnsProvider } from '$lib/gen/mantrae/v1/dns_provider_pb';
import { pageIndex, pageSize } from '$lib/stores/common';
import { dnsProviders } from '$lib/stores/realtime';
import { ConnectError } from '@connectrpc/connect';
import { CircleCheck, CircleSlash, Globe, Pencil, Trash } from '@lucide/svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import type { ColumnDef } from '@tanstack/table-core';
import { onMount } from 'svelte';
import { toast } from 'svelte-sonner';
let item = $state({} as DnsProvider);
let open = $state(false);
// Data state
let data = $state<DnsProvider[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<DnsProvider>[] = [
{
header: 'Name',
@@ -156,14 +152,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
const deleteItem = async (item: DnsProvider) => {
try {
await dnsClient.deleteDnsProvider({ id: item.id });
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`DNS Provider ${item.name} deleted`);
} catch (err) {
const e = ConnectError.from(err);
@@ -180,7 +171,6 @@
config: item.config,
isDefault: isDefault
});
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(
`DNS Provider ${item.name} ${isDefault ? 'set as default' : 'removed as default'}`
);
@@ -198,7 +188,6 @@
for (const row of rows) {
await dnsClient.deleteDnsProvider({ id: row.id });
}
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Successfully deleted ${rows.length} DNS Providers`);
} catch (err) {
const e = ConnectError.from(err);
@@ -206,17 +195,9 @@
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await dnsClient.listDnsProviders({
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.dnsProviders;
rowCount = Number(response.totalCount);
}
onMount(async () => {
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
const response = await dnsClient.listDnsProviders({});
dnsProviders.set(response.dnsProviders);
});
</script>
@@ -238,10 +219,8 @@
</div>
<DataTable
{data}
data={$dnsProviders}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
createButton={{
label: 'Add Provider',
@@ -253,4 +232,4 @@
/>
</div>
<DNSModal bind:open bind:item bind:data />
<DNSModal bind:open bind:item />

View File

@@ -7,20 +7,16 @@
import type { BulkAction } from '$lib/components/tables/types';
import { renderComponent } from '$lib/components/ui/data-table';
import type { EntryPoint } from '$lib/gen/mantrae/v1/entry_point_pb';
import { pageIndex, pageSize } from '$lib/stores/common';
import { profile } from '$lib/stores/profile';
import { entryPoints } from '$lib/stores/realtime';
import { ConnectError } from '@connectrpc/connect';
import { CircleCheck, CircleSlash, EthernetPort, Pencil, Trash } from '@lucide/svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import type { ColumnDef } from '@tanstack/table-core';
import { toast } from 'svelte-sonner';
let item = $state({} as EntryPoint);
let open = $state(false);
// Data state
let data = $state<EntryPoint[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<EntryPoint>[] = [
{
header: 'Name',
@@ -106,14 +102,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
async function deleteItem(id: bigint) {
try {
await entryPointClient.deleteEntryPoint({ id: id });
await refreshData(pageSize.value ?? 10, 0);
toast.success('EntryPoint deleted');
} catch (err) {
const e = ConnectError.from(err);
@@ -129,7 +120,6 @@
address: item.address,
isDefault: isDefault
});
await refreshData(pageSize.value ?? 10, 0);
toast.success(
`Entry point ${item.name} ${isDefault ? 'set as default' : 'removed as default'}`
);
@@ -147,7 +137,6 @@
for (const e of rows) {
await entryPointClient.deleteEntryPoint({ id: e.id });
}
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Successfully deleted ${rows.length} entrypoints`);
} catch (err) {
const e = ConnectError.from(err);
@@ -155,18 +144,12 @@
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await entryPointClient.listEntryPoints({
profileId: profile.id,
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.entryPoints;
rowCount = Number(response.totalCount);
}
$effect(() => {
if (profile) refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
if (profile.isValid()) {
entryPointClient.listEntryPoints({ profileId: profile.id }).then((response) => {
entryPoints.set(response.entryPoints);
});
}
});
</script>
@@ -188,10 +171,8 @@
</div>
<DataTable
{data}
data={$entryPoints}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
createButton={{
label: 'Create EntryPoint',
@@ -203,4 +184,4 @@
/>
</div>
<EntryPointModal bind:open bind:item bind:data />
<EntryPointModal bind:open bind:item />

View File

@@ -3,7 +3,7 @@
import DataTable from '$lib/components/tables/DataTable.svelte';
import MiddlewareModal from '$lib/components/modals/MiddlewareModal.svelte';
import TableActions from '$lib/components/tables/TableActions.svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import type { ColumnDef } from '@tanstack/table-core';
import {
Bot,
CircleCheck,
@@ -21,19 +21,15 @@
import { profile } from '$lib/stores/profile';
import type { BulkAction } from '$lib/components/tables/types';
import { type Middleware } from '$lib/gen/mantrae/v1/middleware_pb';
import { pageIndex, pageSize } from '$lib/stores/common';
import { middlewareClient } from '$lib/api';
import { ConnectError } from '@connectrpc/connect';
import ColumnText from '$lib/components/tables/ColumnText.svelte';
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
import { middlewares } from '$lib/stores/realtime';
let item = $state({} as Middleware);
let open = $state(false);
// Data state
let data = $state<Middleware[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<Middleware>[] = [
{
header: 'Name',
@@ -194,14 +190,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
const deleteItem = async (id: bigint, type: ProtocolType) => {
try {
await middlewareClient.deleteMiddleware({ id: id, type: type });
await refreshData(pageSize.value ?? 10, 0);
toast.success('Middleware deleted');
} catch (err) {
const e = ConnectError.from(err);
@@ -219,7 +210,6 @@
enabled: item.enabled,
isDefault: item.isDefault
});
await refreshData(pageSize.value ?? 10, 0);
toast.success(`Middleware ${item.name} updated`);
} catch (err) {
const e = ConnectError.from(err);
@@ -238,25 +228,19 @@
for (const row of rows) {
await middlewareClient.deleteMiddleware({ id: row.id, type: row.type });
}
await refreshData(pageSize.value ?? 10, 0);
toast.success(`Successfully deleted ${selectedRows.length} middlewares`);
} catch (err) {
const e = ConnectError.from(err);
toast.error('Failed to delete middlewares', { description: e.message });
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await middlewareClient.listMiddlewares({
profileId: profile.id,
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.middlewares;
rowCount = Number(response.totalCount);
}
$effect(() => {
if (profile) refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
if (profile.isValid()) {
middlewareClient.listMiddlewares({ profileId: profile.id }).then((response) => {
middlewares.set(response.middlewares);
});
}
});
</script>
@@ -278,10 +262,8 @@
</div>
<DataTable
{data}
data={$middlewares}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
createButton={{
label: 'Create Middleware',
@@ -293,4 +275,4 @@
/>
</div>
<MiddlewareModal bind:open bind:item bind:data />
<MiddlewareModal bind:open bind:item />

View File

@@ -11,7 +11,6 @@
import { renderComponent } from '$lib/components/ui/data-table';
import { type Router } from '$lib/gen/mantrae/v1/router_pb';
import type { RouterTCPTLSConfig, RouterTLSConfig } from '$lib/gen/zen/traefik-schemas';
import { pageIndex, pageSize } from '$lib/stores/common';
import { profile } from '$lib/stores/profile';
import { ConnectError } from '@connectrpc/connect';
import {
@@ -28,18 +27,15 @@
TriangleAlert,
Waves
} from '@lucide/svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import type { ColumnDef } from '@tanstack/table-core';
import { toast } from 'svelte-sonner';
import { type IconComponent } from '$lib/types';
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
import { routers } from '$lib/stores/realtime';
let item = $state({} as Router);
let open = $state(false);
// Data state
let data = $state<Router[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<Router>[] = [
{
header: 'Name',
@@ -230,14 +226,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
const deleteItem = async (item: Router) => {
try {
await routerClient.deleteRouter({ id: item.id, type: item.type });
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Router ${item.name} deleted`);
} catch (err) {
const e = ConnectError.from(err);
@@ -273,7 +264,6 @@
enabled: service.service.enabled
});
}
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Router ${item.name} updated`);
} catch (err) {
const e = ConnectError.from(err);
@@ -318,25 +308,18 @@
break;
}
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Successfully ${action}d ${rows.length} routers`);
} catch (err) {
const e = ConnectError.from(err);
toast.error(`Failed to ${action}d routers`, { description: e.message });
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await routerClient.listRouters({
profileId: profile.id,
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.routers;
rowCount = Number(response.totalCount);
}
$effect(() => {
if (profile) refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
if (profile.isValid()) {
routerClient.listRouters({ profileId: profile.id }).then((response) => {
routers.set(response.routers);
});
}
});
</script>
@@ -358,10 +341,8 @@
</div>
<DataTable
{data}
data={$routers}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
createButton={{
label: 'Create Router',
@@ -373,4 +354,4 @@
/>
</div>
<RouterModal bind:open bind:item bind:data />
<RouterModal bind:open bind:item />

View File

@@ -6,7 +6,6 @@
import type { BulkAction } from '$lib/components/tables/types';
import { renderComponent } from '$lib/components/ui/data-table';
import { type ServersTransport } from '$lib/gen/mantrae/v1/servers_transport_pb';
import { pageIndex, pageSize } from '$lib/stores/common';
import { profile } from '$lib/stores/profile';
import type { IconComponent } from '$lib/types';
import { ConnectError } from '@connectrpc/connect';
@@ -21,17 +20,14 @@
TriangleAlert,
Truck
} from '@lucide/svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import type { ColumnDef } from '@tanstack/table-core';
import { toast } from 'svelte-sonner';
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
import { serversTransports } from '$lib/stores/realtime';
let item = $state({} as ServersTransport);
let open = $state(false);
// Data state
let data = $state<ServersTransport[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<ServersTransport>[] = [
{
header: 'Name',
@@ -139,14 +135,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
async function deleteItem(id: bigint) {
try {
await serversTransportClient.deleteServersTransport({ id: id });
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success('Transport deleted');
} catch (err) {
const e = ConnectError.from(err);
@@ -163,7 +154,6 @@
type: item.type,
enabled: item.enabled
});
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Transport ${item.name} updated`);
} catch (err) {
const e = ConnectError.from(err);
@@ -179,7 +169,6 @@
for (const s of rows) {
await serversTransportClient.deleteServersTransport({ id: s.id });
}
await refreshData(pageSize.value ?? 10, 0);
toast.success(`Successfully deleted ${rows.length} transports`);
} catch (err) {
const e = ConnectError.from(err);
@@ -187,18 +176,12 @@
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await serversTransportClient.listServersTransports({
profileId: profile.id,
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.serversTransports;
rowCount = Number(response.totalCount);
}
$effect(() => {
if (profile) refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
if (profile.isValid()) {
serversTransportClient.listServersTransports({ profileId: profile.id }).then((response) => {
serversTransports.set(response.serversTransports);
});
}
});
</script>
@@ -220,10 +203,8 @@
</div>
<DataTable
{data}
data={$serversTransports}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
createButton={{
label: 'Create Transport',
@@ -235,4 +216,4 @@
/>
</div>
<ServerTransportModal bind:open bind:item bind:data />
<ServerTransportModal bind:open bind:item />

View File

@@ -1,12 +1,12 @@
<script lang="ts">
import DataTable from '$lib/components/tables/DataTable.svelte';
import TableActions from '$lib/components/tables/TableActions.svelte';
import type { ColumnDef, PaginationState } from '@tanstack/table-core';
import type { ColumnDef } from '@tanstack/table-core';
import { Pencil, Trash, Users } from '@lucide/svelte';
import UserModal from '$lib/components/modals/UserModal.svelte';
import { renderComponent } from '$lib/components/ui/data-table';
import { toast } from 'svelte-sonner';
import { DateFormat, pageIndex, pageSize } from '$lib/stores/common';
import { DateFormat } from '$lib/stores/common';
import type { User } from '$lib/gen/mantrae/v1/user_pb';
import { userClient } from '$lib/api';
import { ConnectError } from '@connectrpc/connect';
@@ -14,14 +14,11 @@
import type { BulkAction } from '$lib/components/tables/types';
import { timestampDate } from '@bufbuild/protobuf/wkt';
import ColumnBadge from '$lib/components/tables/ColumnBadge.svelte';
import { users } from '$lib/stores/realtime';
let item = $state({} as User);
let open = $state(false);
// Data state
let data = $state<User[]>([]);
let rowCount = $state<number>(0);
const columns: ColumnDef<User>[] = [
{
header: 'Username',
@@ -93,14 +90,9 @@
}
];
async function onPaginationChange(p: PaginationState) {
await refreshData(p.pageSize, p.pageIndex);
}
const deleteItem = async (item: User) => {
try {
await userClient.deleteUser({ id: item.id });
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`User ${item.username} deleted`);
} catch (err) {
const e = ConnectError.from(err);
@@ -116,7 +108,6 @@
for (const row of rows) {
await userClient.deleteUser({ id: row.id });
}
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
toast.success(`Successfully deleted ${rows.length} Users`);
} catch (err) {
const e = ConnectError.from(err);
@@ -124,17 +115,9 @@
}
}
async function refreshData(pageSize: number, pageIndex: number) {
const response = await userClient.listUsers({
limit: BigInt(pageSize),
offset: BigInt(pageIndex * pageSize)
});
data = response.users;
rowCount = Number(response.totalCount);
}
onMount(async () => {
await refreshData(pageSize.value ?? 10, pageIndex.value ?? 0);
const response = await userClient.listUsers({});
users.set(response.users);
});
</script>
@@ -156,10 +139,8 @@
</div>
<DataTable
{data}
data={$users}
{columns}
{rowCount}
{onPaginationChange}
{bulkActions}
createButton={{
label: 'Add User',
@@ -171,4 +152,4 @@
/>
</div>
<UserModal bind:open bind:item bind:data />
<UserModal bind:open bind:item />

View File

@@ -1,12 +1,12 @@
import { sveltekit } from "@sveltejs/kit/vite";
import { defineConfig } from "vite";
import tailwindcss from "@tailwindcss/vite";
import { compression } from "vite-plugin-compression2";
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import tailwindcss from '@tailwindcss/vite';
import { compression } from 'vite-plugin-compression2';
export default defineConfig({
plugins: [tailwindcss(), sveltekit(), compression()],
define: {},
server: {
host: "127.0.0.1",
},
host: '127.0.0.1'
}
});