43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
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"
|
|
}
|