35 lines
635 B
Go
35 lines
635 B
Go
package service
|
|
|
|
import (
|
|
"go.infratographer.com/x/gidx"
|
|
)
|
|
|
|
const (
|
|
RelateOwner RelationshipType = "owner"
|
|
RelateParent RelationshipType = "parent"
|
|
)
|
|
|
|
type RelationshipType string
|
|
|
|
type IDPrefixableResource interface {
|
|
PrefixedID() gidx.PrefixedID
|
|
}
|
|
|
|
type Relationships struct {
|
|
Resource IDPrefixableResource
|
|
Parent Relation
|
|
SubjectType ObjectType
|
|
SubjectRelationships []Relation
|
|
Memberships []ResourceMemberships
|
|
}
|
|
|
|
type Relation struct {
|
|
Relation RelationshipType
|
|
Resource IDPrefixableResource
|
|
}
|
|
|
|
type ResourceMemberships struct {
|
|
Role string
|
|
Member IDPrefixableResource
|
|
}
|