model

package
v0.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2024 License: Apache-2.0 Imports: 7 Imported by: 13

Documentation

Index

Constants

View Source
const (
	READ         = models.Read
	WRITE        = models.Write
	EXECUTE      = models.Execute
	ADMINISTRATE = models.Administrate
)
View Source
const CONTROLLING_FUNCTION_PREFIX = "urn:infai:ses:controlling-function:"
View Source
const MEASURING_FUNCTION_PREFIX = "urn:infai:ses:measuring-function:"
View Source
const PREFIX_RDF = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>"
View Source
const PREFIX_SES = "PREFIX ses: <https://senergy.infai.org/ontology/> "

PREFIXES

View Source
const RDFS_COMMENT = "http://www.w3.org/2000/01/rdf-schema#comment"
View Source
const RDFS_LABEL = "http://www.w3.org/2000/01/rdf-schema#label"
View Source
const RDF_TYPE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
View Source
const SES_ONTOLOGY_ASPECT = "https://senergy.infai.org/ontology/Aspect"
View Source
const SES_ONTOLOGY_CHARACTERISTIC = "https://senergy.infai.org/ontology/Characteristic"
View Source
const SES_ONTOLOGY_CONCEPT = "https://senergy.infai.org/ontology/Concept"
View Source
const SES_ONTOLOGY_CONTROLLING_FUNCTION = "https://senergy.infai.org/ontology/ControllingFunction"
View Source
const SES_ONTOLOGY_COUNT = "https://senergy.infai.org/ontology/Count"
View Source
const SES_ONTOLOGY_DEVICE_CLASS = "https://senergy.infai.org/ontology/DeviceClass"
View Source
const SES_ONTOLOGY_DEVICE_TYPE = "https://senergy.infai.org/ontology/DeviceType"
View Source
const SES_ONTOLOGY_EXPOSES_FUNCTION = "https://senergy.infai.org/ontology/exposesFunction"
View Source
const SES_ONTOLOGY_HAS_BASE_CHARACTERISTIC = "https://senergy.infai.org/ontology/hasBaseCharacteristic"
View Source
const SES_ONTOLOGY_HAS_CHARACTERISTIC = "https://senergy.infai.org/ontology/hasCharacteristic"
View Source
const SES_ONTOLOGY_HAS_CONCEPT = "https://senergy.infai.org/ontology/hasConcept"
View Source
const SES_ONTOLOGY_HAS_DEVICE_CLASS = "https://senergy.infai.org/ontology/hasDeviceClass"
View Source
const SES_ONTOLOGY_HAS_IMAGE = "https://senergy.infai.org/ontology/hasImage"
View Source
const SES_ONTOLOGY_HAS_INTERACTION = "https://senergy.infai.org/ontology/interaction"
View Source
const SES_ONTOLOGY_HAS_MAX_VALUE = "https://senergy.infai.org/ontology/hasMaxValue"
View Source
const SES_ONTOLOGY_HAS_MIN_VALUE = "https://senergy.infai.org/ontology/hasMinValue"
View Source
const SES_ONTOLOGY_HAS_PROTOCOL = "https://senergy.infai.org/ontology/hasProtocol"
View Source
const SES_ONTOLOGY_HAS_SERVICE = "https://senergy.infai.org/ontology/hasService"
View Source
const SES_ONTOLOGY_HAS_SUB_CHARACTERISTIC = "https://senergy.infai.org/ontology/hasSubCharacteristic"
View Source
const SES_ONTOLOGY_HAS_VALUE = "https://senergy.infai.org/ontology/hasValue"
View Source
const SES_ONTOLOGY_HAS_VALUE_TYPE = "https://senergy.infai.org/ontology/hasValueType"
View Source
const SES_ONTOLOGY_LOCATION = "https://senergy.infai.org/ontology/Location"
View Source
const SES_ONTOLOGY_MEASURING_FUNCTION = "https://senergy.infai.org/ontology/MeasuringFunction"
View Source
const SES_ONTOLOGY_REFERS_TO = "https://senergy.infai.org/ontology/refersTo"
View Source
const SES_ONTOLOGY_SERVICE = "https://senergy.infai.org/ontology/Service"
View Source
const SES_ONTOLOGY_TOTAL_COUNT = "https://senergy.infai.org/ontology/totalCount"
View Source
const SenergyConnectorLocalIdConstraint = "senergy_connector_local_id"
View Source
const URN_DEVICE_TYPE_PREFIX = URN_PREFIX + "device-type:"
View Source
const URN_PREFIX = "urn:infai:ses:"

Variables

View Source
var ErrNotFound = errors.New("not found")
View Source
var PermissionCheckFailed = errors.New("permission check failed")
View Source
var True = true
View Source
var TruePtr = &True

Functions

func GetPermissionFlagFromQuery added in v0.1.0

func GetPermissionFlagFromQuery(query url.Values) (models.PermissionFlag, error)

func SetFunctionRdfType

func SetFunctionRdfType(function *models.Function)

Types

type AuthAction

type AuthAction = models.PermissionFlag

type Configurable

type Configurable struct {
	Path             string            `json:"path"`
	CharacteristicId string            `json:"characteristic_id"`
	AspectNode       models.AspectNode `json:"aspect_node"`
	FunctionId       string            `json:"function_id"`
	Value            interface{}       `json:"value,omitempty"`
	Type             models.Type       `json:"type,omitempty"`
}

type DeviceListOptions added in v0.0.20

type DeviceListOptions struct {
	Ids             []string                //filter; ignores limit/offset if Ids != nil; ignored if Ids == nil; Ids == []string{} will return an empty list;
	DeviceTypeIds   []string                //filter; ignored if DeviceTypeIds == nil; DeviceTypeIds == []string{} will return an empty list;
	ConnectionState *models.ConnectionState //filter
	Search          string
	Limit           int64                 //default 100, will be ignored if 'ids' is set (Ids != nil)
	Offset          int64                 //default 0, will be ignored if 'ids' is set (Ids != nil)
	SortBy          string                //default name.asc
	Permission      models.PermissionFlag //defaults to read
}

type DeviceTypeCriteria

type DeviceTypeCriteria struct {
	IsIdModified          bool        `json:"is_id_modified"`
	PureDeviceTypeId      string      `json:"pure_device_type_id"`
	DeviceTypeId          string      `json:"device_type_id"`
	ServiceId             string      `json:"service_id"`
	ContentVariableId     string      `json:"content_variable_id"`
	ContentVariablePath   string      `json:"content_variable_path"`
	FunctionId            string      `json:"function_id"`
	Interaction           string      `json:"interaction"`
	IsControllingFunction bool        `json:"controlling_function"`
	DeviceClassId         string      `json:"device_class_id"`
	AspectId              string      `json:"aspect_id"`
	CharacteristicId      string      `json:"characteristic_id"`
	IsVoid                bool        `json:"is_void"`
	Value                 interface{} `json:"value"`
	Type                  models.Type `json:"type"`
	IsLeaf                bool        `json:"is_leaf"`
	IsInput               bool        `json:"is_input"`
}

type DeviceTypeReference added in v0.0.6

type DeviceTypeReference struct {
	Id     string             `json:"id"`
	Name   string             `json:"name"`
	UsedIn []ServiceReference `json:"used_in,omitempty"`
}

type DeviceTypeSelectable

type DeviceTypeSelectable struct {
	DeviceTypeId       string                         `json:"device_type_id,omitempty"`
	Services           []models.Service               `json:"services,omitempty"`
	ServicePathOptions map[string][]ServicePathOption `json:"service_path_options,omitempty"`
}

type DeviceWithConnectionState added in v0.1.0

type DeviceWithConnectionState struct {
	models.Device   `bson:",inline"`
	ConnectionState models.ConnectionState `json:"connection_state" bson:"connection_state"`
	DisplayName     string                 `json:"display_name" bson:"display_name"`
}

type FilterCriteria

type FilterCriteria struct {
	Interaction   models.Interaction `json:"interaction"`
	FunctionId    string             `json:"function_id"`
	DeviceClassId string             `json:"device_class_id"`
	AspectId      string             `json:"aspect_id"`
}

type FunctionList

type FunctionList struct {
	Functions  []models.Function `json:"functions"`
	TotalCount int               `json:"total_count"`
}

type HubListOptions added in v0.1.0

type HubListOptions struct {
	Ids             []string                ///filter; ignores limit/offset if Ids != nil; ignored if Ids == nil; Ids == []string{} will return an empty list;
	ConnectionState *models.ConnectionState //filter
	Search          string
	Limit           int64                 //default 100, will be ignored if 'ids' is set (Ids != nil)
	Offset          int64                 //default 0, will be ignored if 'ids' is set (Ids != nil)
	SortBy          string                //default name.asc
	Permission      models.PermissionFlag //defaults to read
}

type HubWithConnectionState added in v0.1.0

type HubWithConnectionState struct {
	models.Hub      `bson:",inline"`
	ConnectionState models.ConnectionState `json:"connection_state"`
}

type MigrationPublisher added in v0.0.18

type MigrationPublisher interface {
	PublishHub(hub models.Hub, userId string) (err error)
	PublishDevice(element models.Device, userId string) (err error)
	PublishDeviceRights(deviceId string, userId string, rights ResourceRights) (err error)
}

type RefInDeviceTypeResponseElement added in v0.0.6

type RefInDeviceTypeResponseElement struct {
	Count  int                   `json:"count"`
	UsedIn []DeviceTypeReference `json:"used_in"`
}

type ResourceRights added in v0.0.12

type ResourceRights struct {
	UserRights           map[string]Right `json:"user_rights"`
	GroupRights          map[string]Right `json:"group_rights"`
	KeycloakGroupsRights map[string]Right `json:"keycloak_groups_rights"` //TODO
}
type Right struct {
	Read         bool `json:"read"`
	Write        bool `json:"write"`
	Execute      bool `json:"execute"`
	Administrate bool `json:"administrate"`
}

type ServicePathOption

type ServicePathOption struct {
	ServiceId             string             `json:"service_id"`
	Path                  string             `json:"path"`
	CharacteristicId      string             `json:"characteristic_id"`
	AspectNode            models.AspectNode  `json:"aspect_node"`
	FunctionId            string             `json:"function_id"`
	IsVoid                bool               `json:"is_void"`
	Value                 interface{}        `json:"value,omitempty"`
	IsControllingFunction bool               `json:"is_controlling_function"`
	Configurables         []Configurable     `json:"configurables,omitempty"`
	Type                  models.Type        `json:"type,omitempty"`
	Interaction           models.Interaction `json:"interaction"`
}

type ServiceReference added in v0.0.6

type ServiceReference struct {
	Id     string              `json:"id"`
	Name   string              `json:"name"`
	UsedIn []VariableReference `json:"used_in,omitempty"`
}

type TotalCount

type TotalCount struct {
	TotalCount int `json:"total_count"`
}

type UsedInDeviceTypeQuery added in v0.0.6

type UsedInDeviceTypeQuery struct {
	Resource string                    `json:"resource"`           // "aspects"|"functions"|"device-classes"|"characteristics"
	With     string                    `json:"with,omitempty"`     // ""|"device-type"|"service"|"variable": selects how deep the result "used_in" is set; defaults to "device-type"
	CountBy  string                    `json:"count_by,omitempty"` // ""|"device-type"|"service"|"variable": selects what is counted; defaults to "device-type"
	Ids      []UsedInDeviceTypeQueryId `json:"ids"`
}

type UsedInDeviceTypeQueryId added in v0.0.6

type UsedInDeviceTypeQueryId = string

type UsedInDeviceTypeResponse added in v0.0.6

type UsedInDeviceTypeResponse = map[UsedInDeviceTypeQueryId]RefInDeviceTypeResponseElement

type ValidationOptions added in v0.0.5

type ValidationOptions struct {
	AllowNoneLeafAspectNodesInDeviceTypes *bool
}

func LoadDeviceTypeValidationOptions added in v0.0.5

func LoadDeviceTypeValidationOptions(query url.Values) (result ValidationOptions, err error)

func (ValidationOptions) AsUrlValues added in v0.0.5

func (this ValidationOptions) AsUrlValues() url.Values

func (*ValidationOptions) CheckAllowNoneLeafAspectNodesInDeviceTypes added in v0.0.5

func (this *ValidationOptions) CheckAllowNoneLeafAspectNodesInDeviceTypes(defaults config.Config) bool

type VariableReference added in v0.0.6

type VariableReference struct {
	Id   string `json:"id"`
	Path string `json:"path"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL