Newer
Older
package networkdomain
import (
ppb "code.fbi.h-da.de/cocsn/api/go/gosdn/pnd"
tpb "code.fbi.h-da.de/cocsn/api/go/gosdn/transport"
"code.fbi.h-da.de/cocsn/gosdn/interfaces/change"
"code.fbi.h-da.de/cocsn/gosdn/interfaces/device"
"code.fbi.h-da.de/cocsn/gosdn/interfaces/southbound"
"code.fbi.h-da.de/cocsn/gosdn/interfaces/store"
"github.com/google/uuid"
)
// NetworkDomain provides an interface for network domain implementations
// like principal network domain or logical network domain.
type NetworkDomain interface {
Destroy() error
AddSbi(s southbound.SouthboundInterface) error
RemoveSbi(uuid.UUID) error
AddDevice(name string, opts *tpb.TransportOption, sid uuid.UUID) error
GetDevice(identifier string) (device.Device, error)
RemoveDevice(uuid.UUID) error
Devices() []uuid.UUID
ChangeOND(uuid uuid.UUID, operation ppb.ApiOperation, path string, value ...string) error
Request(uuid.UUID, string) error
RequestAll(string) error
GetName() string
GetDescription() string
MarshalDevice(string) (string, error)
ContainsDevice(uuid.UUID) bool
GetSBIs() store.Store
ID() uuid.UUID
PendingChanges() []uuid.UUID
CommittedChanges() []uuid.UUID
Commit(uuid.UUID) error
Confirm(uuid.UUID) error
}