class calabiyau_nas(SQLModel): id = SQLModel.Uuid(default=uuid4, internal=True) virtual_id = SQLModel.Uuid(internal=True) name = SQLModel.Word(max_length=64, null=False, regex=r'^[a-z0-9\._-]+$') nas_type = SQLModel.Word(max_length=64, upper=True, null=False, regex=r'^[a-z0-9\._-]+$') secret = SQLModel.String(max_length=64, null=False) server = SQLModel.Ip4(null=False) description = SQLModel.Text() creation_time = SQLModel.DateTime(default=now, readonly=True) nas_virtual_ref = SQLModel.ForeignKey(virtual_id, calabiyau_virtual.id) nas_virtual_index = SQLModel.Index(virtual_id) nas_server_index = SQLModel.Index(server) nas_unique = SQLModel.UniqueIndex(server) primary_key = id
class calabiyau_duplicate(SQLModel): id = SQLModel.Uuid(default=uuid4, internal=True) package_id = SQLModel.Uuid() name = SQLModel.Word(max_length=64, null=False, regex=r'^[a-z0-9\._-]+$') server = SQLModel.Ip4(null=False) class_attr = SQLModel.TinyInt(null=False, default=0) creation_time = SQLModel.DateTime(readonly=True, default=now) pkg_dup_ref = SQLModel.ForeignKey(package_id, calabiyau_package.id) primary_key = id
class calabiyau_package_attr(SQLModel): id = SQLModel.Uuid(default=uuid4, internal=True) package_id = SQLModel.Uuid() attribute = SQLModel.String() tag = SQLModel.TinyInt(null=True, signed=False) value = SQLModel.String() ctx = SQLModel.String() nas_type = SQLModel.Word(max_length=64, null=False, regex=r'^[a-z0-9\._-]+$') creation_time = SQLModel.DateTime(readonly=True, default=now) pkg_attr_ref = SQLModel.ForeignKey(package_id, calabiyau_package.id) primary_key = id
class tradius_nas(SQLModel): id = SQLModel.Uuid(default=uuid4, internal=True) virtual_id = SQLModel.Uuid(internal=True) domain = SQLModel.Fqdn(internal=True) name = SQLModel.Word(max_length=64, null=False) nas_type = SQLModel.String(max_length=64, null=False) secret = SQLModel.String(max_length=64, null=False) server = SQLModel.String(max_length=64, null=False) description = SQLModel.Text() creation_time = SQLModel.DateTime(default=now, readonly=True) nas_virtual_ref = SQLModel.ForeignKey(virtual_id, tradius_virtual.id) virtual_index = SQLModel.Index(virtual_id) nas_index = SQLModel.Index(server) primary_key = id unique_group = SQLModel.UniqueIndex(server)
class tradius_user(SQLModel): id = SQLModel.Uuid(default=uuid4, internal=True) virtual_id = SQLModel.Uuid() domain = SQLModel.Fqdn(internal=True) tenant_id = SQLModel.Uuid(internal=True) username = SQLModel.Username(max_length=64, null=False) password = SQLModel.Password(max_length=150, null=True) email = SQLModel.Email(max_length=100) name = SQLModel.String(max_length=64) phone_mobile = SQLModel.Phone() phone_office = SQLModel.Phone() designation = SQLModel.Enum('', 'Mr', 'Mrs', 'Ms', 'Dr', 'Prof') user_class = SQLModel.Word(max_length=32, null=True) logins = SQLModel.Integer(null=False, default=0, label='Simultaneous Sessions') enabled = SQLModel.Boolean(default=True) creation_time = SQLModel.DateTime(default=now, readonly=True) unique_username = SQLModel.UniqueIndex(username, domain) user_virtual_ref = SQLModel.ForeignKey(virtual_id, tradius_virtual.id, on_delete='RESTRICT') primary_key = id