package models // SMBShare represents an SMB/CIFS share type SMBShare struct { ID string `json:"id"` Name string `json:"name"` Path string `json:"path"` // dataset mountpoint Dataset string `json:"dataset"` // ZFS dataset name Description string `json:"description"` ReadOnly bool `json:"read_only"` GuestOK bool `json:"guest_ok"` ValidUsers []string `json:"valid_users"` Enabled bool `json:"enabled"` } // NFSExport represents an NFS export type NFSExport struct { ID string `json:"id"` Path string `json:"path"` // dataset mountpoint Dataset string `json:"dataset"` // ZFS dataset name Clients []string `json:"clients"` // allowed clients (CIDR or hostnames) ReadOnly bool `json:"read_only"` RootSquash bool `json:"root_squash"` Enabled bool `json:"enabled"` } // ISCSITarget represents an iSCSI target type ISCSITarget struct { ID string `json:"id"` IQN string `json:"iqn"` // iSCSI Qualified Name LUNs []LUN `json:"luns"` Initiators []string `json:"initiators"` // ACL list Enabled bool `json:"enabled"` } // LUN represents a Logical Unit Number backed by a ZVOL type LUN struct { ID int `json:"id"` // LUN number ZVOL string `json:"zvol"` // ZVOL name Size uint64 `json:"size"` // bytes Backend string `json:"backend"` // "zvol" }