import "saas/library/persqueue/configuration/proto/types.proto";
import "logbroker/public/api/protos/config_manager.proto";

package NSaasLB;

message TNamespaceService {
    required string Name = 1;
    repeated string Ctypes = 2;
}

message TNamespaceDescription {
    required string Name = 1;
    required TNamespaceConfig Config = 2;
    repeated TNamespaceService Services = 3;
}

message TLockedTopicDescription {
    required string Topic = 1;
    required string LockedBy = 2;
}

message TLockDescription {
    repeated TLockedTopicDescription LockedTopics = 1;
    required TLock Lock = 2;
}

message TServiceDescription {
    required TServiceConfig Config = 1;
    repeated string Shards = 2;
    optional uint32 Replicas = 3;
    repeated NLogBroker.DescribeTopicResult Topics = 4;
    repeated NLogBroker.DescribeConsumerResult Consumers = 5;
    repeated NLogBroker.DescribeTopicResult MirrorTopics = 6;
    repeated NLogBroker.DescribeConsumerResult MirrorConsumers = 7;
    repeated TLockDescription Locks = 8;
}
