contracts

package
v0.0.0-...-cdf258e Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2023 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//SystemCallOperation
	SYSTEM_CALL_REQUEST = 0x00001000
	SYSTEM_CALL_RESULT  = 0xF0001000

	//EchoOperation
	ECHO_REQUEST = 0x0541BD72
	ECHO_RESULT  = 0xAB2FF7D4

	//GetServerConfigurationOperation
	GET_SERVER_CONFIGURATION_REQUEST = 0xC89C311F
	GET_SERVER_CONFIGURATION_RESULT  = 0xA1A50921

	//CheckUsernameAvailabilityOperation
	CHECK_USERNAME_AVAILABILITY_REQUEST = 0xA9501A55
	CHECK_USERNAME_AVAILABILITY_RESULT  = 0x067190FF

	//SignupOperation
	SIGNUP_REQUEST = 0x48DB23BF
	SIGNUP_RESULT  = 0x83D062B4

	//ResendVerificationCodeOperation
	RESEND_VERIFICATION_CODE_REQUEST = 0x03373782
	RESEND_VERIFICATION_CODE_RESULT  = 0x6B101891

	//VerifyOperation
	VERIFY_REQUEST = 0x8B78F7F6
	VERIFY_RESULT  = 0x2C8A8A49

	//LoginOperation
	LOGIN_REQUEST = 0xF480F151
	LOGIN_RESULT  = 0xBE819605

	//GetProfileByUserOperation
	GET_PROFILE_BY_USER_REQUEST = 0xEAB16E71
	GET_PROFILE_BY_USER_RESULT  = 0x8EECDE97

	//UpdateProfileByUserOperation
	UPDATE_PROFILE_BY_USER_REQUEST = 0xC25AB0BA
	UPDATE_PROFILE_BY_USER_RESULT  = 0x678A8BAF

	//ChangePasswordOperation
	CHANGE_PASSWORD_REQUEST = 0x926A5565
	CHANGE_PASSWORD_RESULT  = 0x521E68DF

	//ResetPasswordOperation
	RESET_PASSWORD_REQUEST = 0xF4030036
	RESET_PASSWORD_RESULT  = 0x3D70F105

	//LogoutOperation
	LOGOUT_REQUEST = 0x447AFA34
	LOGOUT_RESULT  = 0x9412D17F

	//WebfingerOperation
	WEBFINGER_REQUEST = 0x01FD357C
	WEBFINGER_RESULT  = 0xCC81EC52

	//GetPackagesOperation
	GET_PACKAGES_REQUEST = 0x157C555E
	GET_PACKAGES_RESULT  = 0x4CBD814E

	//GetActorOperation
	GET_ACTOR_REQUEST = 0x5C4AC410
	GET_ACTOR_RESULT  = 0x136B82A8

	//FollowActorOperation
	FOLLOW_ACTOR_REQUEST = 0xD30C2420
	FOLLOW_ACTOR_RESULT  = 0x30154D74

	//AuthorizeInteractionOperation
	AUTHORIZE_INTERACTION_REQUEST = 0x59EA7612
	AUTHORIZE_INTERACTION_RESULT  = 0xB38E936F

	//GetFollowersOperation
	GET_FOLLOWERS_REQUEST = 0x3F20FD65
	GET_FOLLOWERS_RESULT  = 0x7F3E2EB5

	//GetFollowingOperation
	GET_FOLLOWING_REQUEST = 0xF9841DB9
	GET_FOLLOWING_RESULT  = 0xD707408F

	//PostToOutboxOperation
	POST_TO_OUTBOX_REQUEST = 0x9E489553
	POST_TO_OUTBOX_RESULT  = 0xC6C56614

	//GetOutboxOperation
	GET_OUTBOX_REQUEST = 0x527B6997
	GET_OUTBOX_RESULT  = 0xF94E37A0

	//PostToInboxOperation
	POST_TO_INBOX_REQUEST = 0x7400C331
	POST_TO_INBOX_RESULT  = 0x5BD43D90

	//GetInboxOperation
	GET_INBOX_REQUEST = 0x4B8B9285
	GET_INBOX_RESULT  = 0x65835436
)

noinspection GoSnakeCaseUsage

View Source
const (
	INIT = 0
	DONE = 100
)

Variables

View Source
var AccessControlPassThroughFilter = func(IAccessControl) bool { return true }
View Source
var ActivityPubActivityPassThroughFilter = func(IActivityPubActivity) bool { return true }
View Source
var ActivityPubFollowerPassThroughFilter = func(IActivityPubFollower) bool { return true }
View Source
var ActivityPubIncomingActivityPassThroughFilter = func(IActivityPubIncomingActivity) bool { return true }
View Source
var ActivityPubLinkPassThroughFilter = func(IActivityPubLink) bool { return true }
View Source
var ActivityPubMediaPassThroughFilter = func(IActivityPubMedia) bool { return true }
View Source
var ActivityPubObjectPassThroughFilter = func(IActivityPubObject) bool { return true }
View Source
var ActivityPubOutgoingActivityPassThroughFilter = func(IActivityPubOutgoingActivity) bool { return true }
View Source
var ActivityPubPublicKeyPassThroughFilter = func(IActivityPubPublicKey) bool { return true }
View Source
var CategoryPassThroughFilter = func(ICategory) bool { return true }
View Source
var CategoryTypePassThroughFilter = func(ICategoryType) bool { return true }
View Source
var DocumentPassThroughFilter = func(IDocument) bool { return true }
View Source
var IdentityPassThroughFilter = func(IIdentity) bool { return true }
View Source
var RemoteActivityPassThroughFilter = func(IRemoteActivity) bool { return true }
View Source
var SpiPassThroughFilter = func(ISpi) bool { return true }
View Source
var SystemSchedulePassThroughFilter = func(ISystemSchedule) bool { return true }
View Source
var UserPassThroughFilter = func(IUser) bool { return true }

Functions

This section is empty.

Types

type AccessControlCacheCallback

type AccessControlCacheCallback func()

type AccessControlCondition

type AccessControlCondition func(IAccessControl) bool

type AccessControlFilterPredicate

type AccessControlFilterPredicate func(IAccessControl) bool

type AccessControlIterator

type AccessControlIterator func(IAccessControl)

type AccessControlMapPredicate

type AccessControlMapPredicate func(IAccessControl) IAccessControl

type AccessControls

type AccessControls []IAccessControl

type ActivityPubActivities

type ActivityPubActivities []IActivityPubActivity

type ActivityPubActivityCacheCallback

type ActivityPubActivityCacheCallback func()

type ActivityPubActivityCondition

type ActivityPubActivityCondition func(IActivityPubActivity) bool

type ActivityPubActivityFilterPredicate

type ActivityPubActivityFilterPredicate func(IActivityPubActivity) bool

type ActivityPubActivityIterator

type ActivityPubActivityIterator func(IActivityPubActivity)

type ActivityPubActivityMapPredicate

type ActivityPubActivityMapPredicate func(IActivityPubActivity) IActivityPubActivity

type ActivityPubFollowerCacheCallback

type ActivityPubFollowerCacheCallback func()

type ActivityPubFollowerCondition

type ActivityPubFollowerCondition func(IActivityPubFollower) bool

type ActivityPubFollowerFilterPredicate

type ActivityPubFollowerFilterPredicate func(IActivityPubFollower) bool

type ActivityPubFollowerIterator

type ActivityPubFollowerIterator func(IActivityPubFollower)

type ActivityPubFollowerMapPredicate

type ActivityPubFollowerMapPredicate func(IActivityPubFollower) IActivityPubFollower

type ActivityPubFollowers

type ActivityPubFollowers []IActivityPubFollower

type ActivityPubIncomingActivities

type ActivityPubIncomingActivities []IActivityPubIncomingActivity

type ActivityPubIncomingActivityCacheCallback

type ActivityPubIncomingActivityCacheCallback func()

type ActivityPubIncomingActivityCondition

type ActivityPubIncomingActivityCondition func(IActivityPubIncomingActivity) bool

type ActivityPubIncomingActivityFilterPredicate

type ActivityPubIncomingActivityFilterPredicate func(IActivityPubIncomingActivity) bool

type ActivityPubIncomingActivityIterator

type ActivityPubIncomingActivityIterator func(IActivityPubIncomingActivity)

type ActivityPubLinkCacheCallback

type ActivityPubLinkCacheCallback func()

type ActivityPubLinkCondition

type ActivityPubLinkCondition func(IActivityPubLink) bool

type ActivityPubLinkFilterPredicate

type ActivityPubLinkFilterPredicate func(IActivityPubLink) bool

type ActivityPubLinkIterator

type ActivityPubLinkIterator func(IActivityPubLink)

type ActivityPubLinkMapPredicate

type ActivityPubLinkMapPredicate func(IActivityPubLink) IActivityPubLink
type ActivityPubLinks []IActivityPubLink

type ActivityPubMediaCacheCallback

type ActivityPubMediaCacheCallback func()

type ActivityPubMediaCondition

type ActivityPubMediaCondition func(IActivityPubMedia) bool

type ActivityPubMediaFilterPredicate

type ActivityPubMediaFilterPredicate func(IActivityPubMedia) bool

type ActivityPubMediaIterator

type ActivityPubMediaIterator func(IActivityPubMedia)

type ActivityPubMediaMapPredicate

type ActivityPubMediaMapPredicate func(IActivityPubMedia) IActivityPubMedia

type ActivityPubMedias

type ActivityPubMedias []IActivityPubMedia

type ActivityPubObjectCacheCallback

type ActivityPubObjectCacheCallback func()

type ActivityPubObjectCondition

type ActivityPubObjectCondition func(IActivityPubObject) bool

type ActivityPubObjectFilterPredicate

type ActivityPubObjectFilterPredicate func(IActivityPubObject) bool

type ActivityPubObjectIterator

type ActivityPubObjectIterator func(IActivityPubObject)

type ActivityPubObjectMapPredicate

type ActivityPubObjectMapPredicate func(IActivityPubObject) IActivityPubObject

type ActivityPubObjects

type ActivityPubObjects []IActivityPubObject

type ActivityPubOutgoingActivities

type ActivityPubOutgoingActivities []IActivityPubOutgoingActivity

type ActivityPubOutgoingActivityCacheCallback

type ActivityPubOutgoingActivityCacheCallback func()

type ActivityPubOutgoingActivityCondition

type ActivityPubOutgoingActivityCondition func(IActivityPubOutgoingActivity) bool

type ActivityPubOutgoingActivityFilterPredicate

type ActivityPubOutgoingActivityFilterPredicate func(IActivityPubOutgoingActivity) bool

type ActivityPubOutgoingActivityIterator

type ActivityPubOutgoingActivityIterator func(IActivityPubOutgoingActivity)

type ActivityPubPublicKeyCacheCallback

type ActivityPubPublicKeyCacheCallback func()

type ActivityPubPublicKeyCondition

type ActivityPubPublicKeyCondition func(IActivityPubPublicKey) bool

type ActivityPubPublicKeyFilterPredicate

type ActivityPubPublicKeyFilterPredicate func(IActivityPubPublicKey) bool

type ActivityPubPublicKeyIterator

type ActivityPubPublicKeyIterator func(IActivityPubPublicKey)

type ActivityPubPublicKeyMapPredicate

type ActivityPubPublicKeyMapPredicate func(IActivityPubPublicKey) IActivityPubPublicKey

type ActivityPubPublicKeys

type ActivityPubPublicKeys []IActivityPubPublicKey

type Categories

type Categories []ICategory

type CategoryCacheCallback

type CategoryCacheCallback func()

type CategoryCondition

type CategoryCondition func(ICategory) bool

type CategoryFilterPredicate

type CategoryFilterPredicate func(ICategory) bool

type CategoryIterator

type CategoryIterator func(ICategory)

type CategoryMapPredicate

type CategoryMapPredicate func(ICategory) ICategory

type CategoryTypeCacheCallback

type CategoryTypeCacheCallback func()

type CategoryTypeCondition

type CategoryTypeCondition func(ICategoryType) bool

type CategoryTypeFilterPredicate

type CategoryTypeFilterPredicate func(ICategoryType) bool

type CategoryTypeIterator

type CategoryTypeIterator func(ICategoryType)

type CategoryTypeMapPredicate

type CategoryTypeMapPredicate func(ICategoryType) ICategoryType

type CategoryTypes

type CategoryTypes []ICategoryType

type DocumentCacheCallback

type DocumentCacheCallback func()

type DocumentCondition

type DocumentCondition func(IDocument) bool

type DocumentFilterPredicate

type DocumentFilterPredicate func(IDocument) bool

type DocumentIterator

type DocumentIterator func(IDocument)

type DocumentMapPredicate

type DocumentMapPredicate func(IDocument) IDocument

type Documents

type Documents []IDocument

type IAccessControl

type IAccessControl interface {
	IObject
	// Key returns 'Key' of this 'AccessControl' instance.
	Key() uint64
	// UpdateKey directly updates 'Key' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateKey(key uint64, editor Identity)
	// UpdateKeyAtomic updates 'Key' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateKeyAtomic(transaction ITransaction, key uint64, editor Identity)
	// Value returns 'Value' of this 'AccessControl' instance.
	Value() uint64
	// UpdateValue directly updates 'Value' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateValue(value uint64, editor Identity)
	// UpdateValueAtomic updates 'Value' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateValueAtomic(transaction ITransaction, value uint64, editor Identity)
}

type IAccessControlCollection

type IAccessControlCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IAccessControl
	Append(accessControl IAccessControl)
	ForEach(AccessControlIterator)
	Reverse() IAccessControlCollection
	Array() AccessControls
}

type IAccessControlManager

type IAccessControlManager interface {
	ISystemComponent
	OnCacheChanged(AccessControlCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition AccessControlCondition) bool
	ListAccessControls(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IAccessControlCollection
	GetAccessControl(id int64, editor Identity) (IAccessControl, error)
	AddOrUpdateAccessControl(key uint64, value uint64, editor Identity) error
	AccessControls() map[uint64]uint64
	AddAccessControl(key uint64, value uint64, editor Identity) (IAccessControl, error)
	AddAccessControlWithCustomId(id int64, key uint64, value uint64, editor Identity) (IAccessControl, error)
	AddAccessControlObject(accessControl IAccessControl, editor Identity) (IAccessControl, error)
	AddAccessControlAtomic(transaction ITransaction, key uint64, value uint64, editor Identity) (IAccessControl, error)
	AddAccessControlWithCustomIdAtomic(id int64, transaction ITransaction, key uint64, value uint64, editor Identity) (IAccessControl, error)
	AddAccessControlObjectAtomic(transaction ITransaction, accessControl IAccessControl, editor Identity) (IAccessControl, error)
	Log(key uint64, value uint64, source string, editor Identity, payload string)
	UpdateAccessControl(id int64, key uint64, value uint64, editor Identity) (IAccessControl, error)
	UpdateAccessControlObject(id int64, accessControl IAccessControl, editor Identity) (IAccessControl, error)
	UpdateAccessControlAtomic(transaction ITransaction, id int64, key uint64, value uint64, editor Identity) (IAccessControl, error)
	UpdateAccessControlObjectAtomic(transaction ITransaction, id int64, accessControl IAccessControl, editor Identity) (IAccessControl, error)
	AddOrUpdateAccessControlObject(id int64, accessControl IAccessControl, editor Identity) (IAccessControl, error)
	AddOrUpdateAccessControlObjectAtomic(transaction ITransaction, id int64, accessControl IAccessControl, editor Identity) (IAccessControl, error)
	RemoveAccessControl(id int64, editor Identity) (IAccessControl, error)
	RemoveAccessControlAtomic(transaction ITransaction, id int64, editor Identity) (IAccessControl, error)
	Find(id int64) IAccessControl
	ForEach(iterator AccessControlIterator)
	Filter(predicate AccessControlFilterPredicate) IAccessControlCollection
	Map(predicate AccessControlMapPredicate) IAccessControlCollection
}

type IActivityPubActivity

type IActivityPubActivity interface {
	// Context returns 'Context' of this 'ActivityPubActivity' instance.
	Context() string
	// SetContext sets 'Context' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetContext(context string)
	// Id returns 'Id' of this 'ActivityPubActivity' instance.
	Id() string
	// SetId sets 'Id' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetId(id string)
	// Type returns 'Type' of this 'ActivityPubActivity' instance.
	Type() string
	// SetType sets 'Type' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetType(type_ string)
	// Actor returns 'Actor' of this 'ActivityPubActivity' instance.
	Actor() string
	// SetActor sets 'Actor' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetActor(actor string)
	// Object returns 'Object' of this 'ActivityPubActivity' instance.
	Object() IActivityPubObject
	// SetObject sets 'Object' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetObject(object IActivityPubObject)
	// From returns 'From' of this 'ActivityPubActivity' instance.
	From() string
	// SetFrom sets 'From' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetFrom(from string)
	// To returns 'To' of this 'ActivityPubActivity' instance.
	To() []string
	// SetTo sets 'To' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetTo(to []string)
	// InReplyTo returns 'InReplyTo' of this 'ActivityPubActivity' instance.
	InReplyTo() string
	// SetInReplyTo sets 'InReplyTo' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetInReplyTo(inReplyTo string)
	// Content returns 'Content' of this 'ActivityPubActivity' instance.
	Content() string
	// SetContent sets 'Content' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetContent(content string)
	// Published returns 'Published' of this 'ActivityPubActivity' instance.
	Published() string
	// SetPublished sets 'Published' in-memory value of this 'ActivityPubActivity' instance.
	// This doesn't affect the persistent data store.
	SetPublished(published string)
}

type IActivityPubActivityCollection

type IActivityPubActivityCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubActivity
	Append(activityPubActivity IActivityPubActivity)
	ForEach(ActivityPubActivityIterator)
	Reverse() IActivityPubActivityCollection
	Array() ActivityPubActivities
}

type IActivityPubActivityManager

type IActivityPubActivityManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubActivityCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubActivityCondition) bool
	ListActivityPubActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubActivityCollection
	GetActivityPubActivity(id int64, editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivity(editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivityWithCustomId(id int64, editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivityObject(activityPubActivity IActivityPubActivity, editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivityAtomic(transaction ITransaction, editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivityWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivityObjectAtomic(transaction ITransaction, activityPubActivity IActivityPubActivity, editor Identity) (IActivityPubActivity, error)
	Log(source string, editor Identity, payload string)
	UpdateActivityPubActivity(id int64, editor Identity) (IActivityPubActivity, error)
	UpdateActivityPubActivityObject(id int64, activityPubActivity IActivityPubActivity, editor Identity) (IActivityPubActivity, error)
	UpdateActivityPubActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubActivity, error)
	UpdateActivityPubActivityObjectAtomic(transaction ITransaction, id int64, activityPubActivity IActivityPubActivity, editor Identity) (IActivityPubActivity, error)
	AddOrUpdateActivityPubActivityObject(id int64, activityPubActivity IActivityPubActivity, editor Identity) (IActivityPubActivity, error)
	AddOrUpdateActivityPubActivityObjectAtomic(transaction ITransaction, id int64, activityPubActivity IActivityPubActivity, editor Identity) (IActivityPubActivity, error)
	RemoveActivityPubActivity(id int64, editor Identity) (IActivityPubActivity, error)
	RemoveActivityPubActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubActivity, error)
	Find(id int64) IActivityPubActivity
	ForEach(iterator ActivityPubActivityIterator)
	Filter(predicate ActivityPubActivityFilterPredicate) IActivityPubActivityCollection
	Map(predicate ActivityPubActivityMapPredicate) IActivityPubActivityCollection
}

type IActivityPubFollower

type IActivityPubFollower interface {
	IObject
	// Handle returns 'Handle' of this 'ActivityPubFollower' instance.
	Handle() string
	// UpdateHandle directly updates 'Handle' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateHandle(handle string, editor Identity)
	// UpdateHandleAtomic updates 'Handle' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateHandleAtomic(transaction ITransaction, handle string, editor Identity)
	// Inbox returns 'Inbox' of this 'ActivityPubFollower' instance.
	Inbox() string
	// UpdateInbox directly updates 'Inbox' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateInbox(inbox string, editor Identity)
	// UpdateInboxAtomic updates 'Inbox' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateInboxAtomic(transaction ITransaction, inbox string, editor Identity)
	// Subject returns 'Subject' of this 'ActivityPubFollower' instance.
	Subject() string
	// UpdateSubject directly updates 'Subject' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateSubject(subject string, editor Identity)
	// UpdateSubjectAtomic updates 'Subject' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateSubjectAtomic(transaction ITransaction, subject string, editor Identity)
	// Activity returns 'Activity' of this 'ActivityPubFollower' instance.
	Activity() string
	// UpdateActivity directly updates 'Activity' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateActivity(activity string, editor Identity)
	// UpdateActivityAtomic updates 'Activity' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateActivityAtomic(transaction ITransaction, activity string, editor Identity)
	// Accepted returns 'Accepted' of this 'ActivityPubFollower' instance.
	Accepted() bool
	// UpdateAccepted directly updates 'Accepted' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateAccepted(accepted bool, editor Identity)
	// UpdateAcceptedAtomic updates 'Accepted' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateAcceptedAtomic(transaction ITransaction, accepted bool, editor Identity)
}

type IActivityPubFollowerCollection

type IActivityPubFollowerCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubFollower
	Append(activityPubFollower IActivityPubFollower)
	ForEach(ActivityPubFollowerIterator)
	Reverse() IActivityPubFollowerCollection
	Array() ActivityPubFollowers
}

type IActivityPubFollowerManager

type IActivityPubFollowerManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubFollowerCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubFollowerCondition) bool
	ListActivityPubFollowers(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubFollowerCollection
	GetActivityPubFollower(id int64, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollower(handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollowerWithCustomId(id int64, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollowerObject(activityPubFollower IActivityPubFollower, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollowerAtomic(transaction ITransaction, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollowerWithCustomIdAtomic(id int64, transaction ITransaction, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollowerObjectAtomic(transaction ITransaction, activityPubFollower IActivityPubFollower, editor Identity) (IActivityPubFollower, error)
	Log(handle string, inbox string, subject string, activity string, accepted bool, source string, editor Identity, payload string)
	UpdateActivityPubFollower(id int64, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	UpdateActivityPubFollowerObject(id int64, activityPubFollower IActivityPubFollower, editor Identity) (IActivityPubFollower, error)
	UpdateActivityPubFollowerAtomic(transaction ITransaction, id int64, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	UpdateActivityPubFollowerObjectAtomic(transaction ITransaction, id int64, activityPubFollower IActivityPubFollower, editor Identity) (IActivityPubFollower, error)
	AddOrUpdateActivityPubFollowerObject(id int64, activityPubFollower IActivityPubFollower, editor Identity) (IActivityPubFollower, error)
	AddOrUpdateActivityPubFollowerObjectAtomic(transaction ITransaction, id int64, activityPubFollower IActivityPubFollower, editor Identity) (IActivityPubFollower, error)
	RemoveActivityPubFollower(id int64, editor Identity) (IActivityPubFollower, error)
	RemoveActivityPubFollowerAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubFollower, error)
	Find(id int64) IActivityPubFollower
	ForEach(iterator ActivityPubFollowerIterator)
	Filter(predicate ActivityPubFollowerFilterPredicate) IActivityPubFollowerCollection
	Map(predicate ActivityPubFollowerMapPredicate) IActivityPubFollowerCollection
}

type IActivityPubIncomingActivity

type IActivityPubIncomingActivity interface {
	IObject
	// DependenciesAreUnknown scans all dependencies to make sure a valid parent is set for all of them.
	DependenciesAreUnknown() bool
	// IdentityId returns parent 'IdentityId' of this 'ActivityPubIncomingActivity' instance.
	IdentityId() int64
	// AssertBelongsToIdentity checks whether this 'ActivityPubIncomingActivity' instance is a child of the specified 'Identity'
	AssertBelongsToIdentity(identity IIdentity)
	// IdentityIsUnknown checks whether a valid parent 'IdentityId' is provided for this 'ActivityPubIncomingActivity' instance or not.
	IdentityIsUnknown() bool
	// AssertIdentityIsProvided asserts that a valid 'IdentityId' is provided for this 'ActivityPubIncomingActivity' instance. A panic will occur if the assertion is not valid.
	AssertIdentityIsProvided()
	// AssertIdentity asserts the given 'IdentityId' is in fact the parent of this 'ActivityPubIncomingActivity' instance. A panic will occur if the assertion is not valid.
	AssertIdentity(identityId int64)
	// UniqueIdentifier returns 'UniqueIdentifier' of this 'ActivityPubIncomingActivity' instance.
	UniqueIdentifier() string
	// UpdateUniqueIdentifier directly updates 'UniqueIdentifier' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateUniqueIdentifier(uniqueIdentifier string, editor Identity)
	// UpdateUniqueIdentifierAtomic updates 'UniqueIdentifier' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateUniqueIdentifierAtomic(transaction ITransaction, uniqueIdentifier string, editor Identity)
	// Timestamp returns 'Timestamp' of this 'ActivityPubIncomingActivity' instance.
	Timestamp() int64
	// UpdateTimestamp directly updates 'Timestamp' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateTimestamp(timestamp int64, editor Identity)
	// UpdateTimestampAtomic updates 'Timestamp' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateTimestampAtomic(transaction ITransaction, timestamp int64, editor Identity)
	// From returns 'From' of this 'ActivityPubIncomingActivity' instance.
	From() string
	// UpdateFrom directly updates 'From' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateFrom(from string, editor Identity)
	// UpdateFromAtomic updates 'From' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateFromAtomic(transaction ITransaction, from string, editor Identity)
	// To returns 'To' of this 'ActivityPubIncomingActivity' instance.
	To() string
	// UpdateTo directly updates 'To' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateTo(to string, editor Identity)
	// UpdateToAtomic updates 'To' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateToAtomic(transaction ITransaction, to string, editor Identity)
	// Content returns 'Content' of this 'ActivityPubIncomingActivity' instance.
	Content() string
	// UpdateContent directly updates 'Content' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateContent(content string, editor Identity)
	// UpdateContentAtomic updates 'Content' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateContentAtomic(transaction ITransaction, content string, editor Identity)
	// Raw returns 'Raw' of this 'ActivityPubIncomingActivity' instance.
	Raw() string
	// UpdateRaw directly updates 'Raw' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateRaw(raw string, editor Identity)
	// UpdateRawAtomic updates 'Raw' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateRawAtomic(transaction ITransaction, raw string, editor Identity)
}

type IActivityPubIncomingActivityCollection

type IActivityPubIncomingActivityCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubIncomingActivity
	Append(activityPubIncomingActivity IActivityPubIncomingActivity)
	ForEach(ActivityPubIncomingActivityIterator)
	Reverse() IActivityPubIncomingActivityCollection
	Array() ActivityPubIncomingActivities
}

type IActivityPubIncomingActivityManager

type IActivityPubIncomingActivityManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubIncomingActivityCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubIncomingActivityCondition) bool
	ListActivityPubIncomingActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubIncomingActivityCollection
	GetActivityPubIncomingActivity(id int64, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivityWithCustomId(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivityObject(activityPubIncomingActivity IActivityPubIncomingActivity, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivityAtomic(transaction ITransaction, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivityWithCustomIdAtomic(id int64, transaction ITransaction, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivityObjectAtomic(transaction ITransaction, activityPubIncomingActivity IActivityPubIncomingActivity, editor Identity) (IActivityPubIncomingActivity, error)
	Log(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, source string, editor Identity, payload string)
	UpdateActivityPubIncomingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	UpdateActivityPubIncomingActivityObject(id int64, activityPubIncomingActivity IActivityPubIncomingActivity, editor Identity) (IActivityPubIncomingActivity, error)
	UpdateActivityPubIncomingActivityAtomic(transaction ITransaction, id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	UpdateActivityPubIncomingActivityObjectAtomic(transaction ITransaction, id int64, activityPubIncomingActivity IActivityPubIncomingActivity, editor Identity) (IActivityPubIncomingActivity, error)
	AddOrUpdateActivityPubIncomingActivityObject(id int64, activityPubIncomingActivity IActivityPubIncomingActivity, editor Identity) (IActivityPubIncomingActivity, error)
	AddOrUpdateActivityPubIncomingActivityObjectAtomic(transaction ITransaction, id int64, activityPubIncomingActivity IActivityPubIncomingActivity, editor Identity) (IActivityPubIncomingActivity, error)
	RemoveActivityPubIncomingActivity(id int64, editor Identity) (IActivityPubIncomingActivity, error)
	RemoveActivityPubIncomingActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubIncomingActivity, error)
	Find(id int64) IActivityPubIncomingActivity
	ForEach(iterator ActivityPubIncomingActivityIterator)
	Filter(predicate ActivityPubIncomingActivityFilterPredicate) IActivityPubIncomingActivityCollection
	Map(predicate ActivityPubIncomingActivityMapPredicate) IActivityPubIncomingActivityCollection
	ListActivityPubIncomingActivitiesByIdentity(identityId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubIncomingActivityCollection
	ForEachByIdentity(identityId int64, iterator ActivityPubIncomingActivityIterator)
}
type IActivityPubLink interface {
	// Href returns 'Href' of this 'ActivityPubLink' instance.
	Href() string
	// SetHref sets 'Href' in-memory value of this 'ActivityPubLink' instance.
	// This doesn't affect the persistent data store.
	SetHref(href string)
	// Rel returns 'Rel' of this 'ActivityPubLink' instance.
	Rel() string
	// SetRel sets 'Rel' in-memory value of this 'ActivityPubLink' instance.
	// This doesn't affect the persistent data store.
	SetRel(rel string)
	// Type returns 'Type' of this 'ActivityPubLink' instance.
	Type() string
	// SetType sets 'Type' in-memory value of this 'ActivityPubLink' instance.
	// This doesn't affect the persistent data store.
	SetType(type_ string)
	// Template returns 'Template' of this 'ActivityPubLink' instance.
	Template() string
	// SetTemplate sets 'Template' in-memory value of this 'ActivityPubLink' instance.
	// This doesn't affect the persistent data store.
	SetTemplate(template string)
}

type IActivityPubLinkCollection

type IActivityPubLinkCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubLink
	Append(activityPubLink IActivityPubLink)
	ForEach(ActivityPubLinkIterator)
	Reverse() IActivityPubLinkCollection
	Array() ActivityPubLinks
}

type IActivityPubLinkManager

type IActivityPubLinkManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubLinkCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubLinkCondition) bool
	ListActivityPubLinks(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubLinkCollection
	GetActivityPubLink(id int64, editor Identity) (IActivityPubLink, error)
	AddActivityPubLink(editor Identity) (IActivityPubLink, error)
	AddActivityPubLinkWithCustomId(id int64, editor Identity) (IActivityPubLink, error)
	AddActivityPubLinkObject(activityPubLink IActivityPubLink, editor Identity) (IActivityPubLink, error)
	AddActivityPubLinkAtomic(transaction ITransaction, editor Identity) (IActivityPubLink, error)
	AddActivityPubLinkWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (IActivityPubLink, error)
	AddActivityPubLinkObjectAtomic(transaction ITransaction, activityPubLink IActivityPubLink, editor Identity) (IActivityPubLink, error)
	Log(source string, editor Identity, payload string)
	UpdateActivityPubLink(id int64, editor Identity) (IActivityPubLink, error)
	UpdateActivityPubLinkObject(id int64, activityPubLink IActivityPubLink, editor Identity) (IActivityPubLink, error)
	UpdateActivityPubLinkAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubLink, error)
	UpdateActivityPubLinkObjectAtomic(transaction ITransaction, id int64, activityPubLink IActivityPubLink, editor Identity) (IActivityPubLink, error)
	AddOrUpdateActivityPubLinkObject(id int64, activityPubLink IActivityPubLink, editor Identity) (IActivityPubLink, error)
	AddOrUpdateActivityPubLinkObjectAtomic(transaction ITransaction, id int64, activityPubLink IActivityPubLink, editor Identity) (IActivityPubLink, error)
	RemoveActivityPubLink(id int64, editor Identity) (IActivityPubLink, error)
	RemoveActivityPubLinkAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubLink, error)
	Find(id int64) IActivityPubLink
	ForEach(iterator ActivityPubLinkIterator)
	Filter(predicate ActivityPubLinkFilterPredicate) IActivityPubLinkCollection
	Map(predicate ActivityPubLinkMapPredicate) IActivityPubLinkCollection
}

type IActivityPubMedia

type IActivityPubMedia interface {
	// MediaType returns 'MediaType' of this 'ActivityPubMedia' instance.
	MediaType() string
	// SetMediaType sets 'MediaType' in-memory value of this 'ActivityPubMedia' instance.
	// This doesn't affect the persistent data store.
	SetMediaType(mediaType string)
	// Type returns 'Type' of this 'ActivityPubMedia' instance.
	Type() string
	// SetType sets 'Type' in-memory value of this 'ActivityPubMedia' instance.
	// This doesn't affect the persistent data store.
	SetType(type_ string)
	// Url returns 'Url' of this 'ActivityPubMedia' instance.
	Url() string
	// SetUrl sets 'Url' in-memory value of this 'ActivityPubMedia' instance.
	// This doesn't affect the persistent data store.
	SetUrl(url string)
	// Width returns 'Width' of this 'ActivityPubMedia' instance.
	Width() int32
	// SetWidth sets 'Width' in-memory value of this 'ActivityPubMedia' instance.
	// This doesn't affect the persistent data store.
	SetWidth(width int32)
	// Height returns 'Height' of this 'ActivityPubMedia' instance.
	Height() int32
	// SetHeight sets 'Height' in-memory value of this 'ActivityPubMedia' instance.
	// This doesn't affect the persistent data store.
	SetHeight(height int32)
}

type IActivityPubMediaCollection

type IActivityPubMediaCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubMedia
	Append(activityPubMedia IActivityPubMedia)
	ForEach(ActivityPubMediaIterator)
	Reverse() IActivityPubMediaCollection
	Array() ActivityPubMedias
}

type IActivityPubMediaManager

type IActivityPubMediaManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubMediaCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubMediaCondition) bool
	ListActivityPubMedias(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubMediaCollection
	GetActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error)
	AddActivityPubMedia(editor Identity) (IActivityPubMedia, error)
	AddActivityPubMediaWithCustomId(id int64, editor Identity) (IActivityPubMedia, error)
	AddActivityPubMediaObject(activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error)
	AddActivityPubMediaAtomic(transaction ITransaction, editor Identity) (IActivityPubMedia, error)
	AddActivityPubMediaWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (IActivityPubMedia, error)
	AddActivityPubMediaObjectAtomic(transaction ITransaction, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error)
	Log(source string, editor Identity, payload string)
	UpdateActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error)
	UpdateActivityPubMediaObject(id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error)
	UpdateActivityPubMediaAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubMedia, error)
	UpdateActivityPubMediaObjectAtomic(transaction ITransaction, id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error)
	AddOrUpdateActivityPubMediaObject(id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error)
	AddOrUpdateActivityPubMediaObjectAtomic(transaction ITransaction, id int64, activityPubMedia IActivityPubMedia, editor Identity) (IActivityPubMedia, error)
	RemoveActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error)
	RemoveActivityPubMediaAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubMedia, error)
	Find(id int64) IActivityPubMedia
	ForEach(iterator ActivityPubMediaIterator)
	Filter(predicate ActivityPubMediaFilterPredicate) IActivityPubMediaCollection
	Map(predicate ActivityPubMediaMapPredicate) IActivityPubMediaCollection
}

type IActivityPubObject

type IActivityPubObject interface {
	// Context returns 'Context' of this 'ActivityPubObject' instance.
	Context() string
	// SetContext sets 'Context' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetContext(context string)
	// Id returns 'Id' of this 'ActivityPubObject' instance.
	Id() string
	// SetId sets 'Id' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetId(id string)
	// Type returns 'Type' of this 'ActivityPubObject' instance.
	Type() string
	// SetType sets 'Type' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetType(type_ string)
	// Actor returns 'Actor' of this 'ActivityPubObject' instance.
	Actor() string
	// SetActor sets 'Actor' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetActor(actor string)
	// From returns 'From' of this 'ActivityPubObject' instance.
	From() string
	// SetFrom sets 'From' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetFrom(from string)
	// To returns 'To' of this 'ActivityPubObject' instance.
	To() []string
	// SetTo sets 'To' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetTo(to []string)
	// InReplyTo returns 'InReplyTo' of this 'ActivityPubObject' instance.
	InReplyTo() string
	// SetInReplyTo sets 'InReplyTo' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetInReplyTo(inReplyTo string)
	// Content returns 'Content' of this 'ActivityPubObject' instance.
	Content() string
	// SetContent sets 'Content' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetContent(content string)
	// Published returns 'Published' of this 'ActivityPubObject' instance.
	Published() string
	// SetPublished sets 'Published' in-memory value of this 'ActivityPubObject' instance.
	// This doesn't affect the persistent data store.
	SetPublished(published string)
}

type IActivityPubObjectCollection

type IActivityPubObjectCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubObject
	Append(activityPubObject IActivityPubObject)
	ForEach(ActivityPubObjectIterator)
	Reverse() IActivityPubObjectCollection
	Array() ActivityPubObjects
}

type IActivityPubObjectManager

type IActivityPubObjectManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubObjectCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubObjectCondition) bool
	ListActivityPubObjects(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubObjectCollection
	GetActivityPubObject(id int64, editor Identity) (IActivityPubObject, error)
	AddActivityPubObject(editor Identity) (IActivityPubObject, error)
	AddActivityPubObjectWithCustomId(id int64, editor Identity) (IActivityPubObject, error)
	AddActivityPubObjectObject(activityPubObject IActivityPubObject, editor Identity) (IActivityPubObject, error)
	AddActivityPubObjectAtomic(transaction ITransaction, editor Identity) (IActivityPubObject, error)
	AddActivityPubObjectWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (IActivityPubObject, error)
	AddActivityPubObjectObjectAtomic(transaction ITransaction, activityPubObject IActivityPubObject, editor Identity) (IActivityPubObject, error)
	Log(source string, editor Identity, payload string)
	UpdateActivityPubObject(id int64, editor Identity) (IActivityPubObject, error)
	UpdateActivityPubObjectObject(id int64, activityPubObject IActivityPubObject, editor Identity) (IActivityPubObject, error)
	UpdateActivityPubObjectAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubObject, error)
	UpdateActivityPubObjectObjectAtomic(transaction ITransaction, id int64, activityPubObject IActivityPubObject, editor Identity) (IActivityPubObject, error)
	AddOrUpdateActivityPubObjectObject(id int64, activityPubObject IActivityPubObject, editor Identity) (IActivityPubObject, error)
	AddOrUpdateActivityPubObjectObjectAtomic(transaction ITransaction, id int64, activityPubObject IActivityPubObject, editor Identity) (IActivityPubObject, error)
	RemoveActivityPubObject(id int64, editor Identity) (IActivityPubObject, error)
	RemoveActivityPubObjectAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubObject, error)
	Find(id int64) IActivityPubObject
	ForEach(iterator ActivityPubObjectIterator)
	Filter(predicate ActivityPubObjectFilterPredicate) IActivityPubObjectCollection
	Map(predicate ActivityPubObjectMapPredicate) IActivityPubObjectCollection
}

type IActivityPubOutgoingActivity

type IActivityPubOutgoingActivity interface {
	IObject
	// DependenciesAreUnknown scans all dependencies to make sure a valid parent is set for all of them.
	DependenciesAreUnknown() bool
	// IdentityId returns parent 'IdentityId' of this 'ActivityPubOutgoingActivity' instance.
	IdentityId() int64
	// AssertBelongsToIdentity checks whether this 'ActivityPubOutgoingActivity' instance is a child of the specified 'Identity'
	AssertBelongsToIdentity(identity IIdentity)
	// IdentityIsUnknown checks whether a valid parent 'IdentityId' is provided for this 'ActivityPubOutgoingActivity' instance or not.
	IdentityIsUnknown() bool
	// AssertIdentityIsProvided asserts that a valid 'IdentityId' is provided for this 'ActivityPubOutgoingActivity' instance. A panic will occur if the assertion is not valid.
	AssertIdentityIsProvided()
	// AssertIdentity asserts the given 'IdentityId' is in fact the parent of this 'ActivityPubOutgoingActivity' instance. A panic will occur if the assertion is not valid.
	AssertIdentity(identityId int64)
	// UniqueIdentifier returns 'UniqueIdentifier' of this 'ActivityPubOutgoingActivity' instance.
	UniqueIdentifier() string
	// UpdateUniqueIdentifier directly updates 'UniqueIdentifier' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateUniqueIdentifier(uniqueIdentifier string, editor Identity)
	// UpdateUniqueIdentifierAtomic updates 'UniqueIdentifier' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateUniqueIdentifierAtomic(transaction ITransaction, uniqueIdentifier string, editor Identity)
	// Timestamp returns 'Timestamp' of this 'ActivityPubOutgoingActivity' instance.
	Timestamp() int64
	// UpdateTimestamp directly updates 'Timestamp' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateTimestamp(timestamp int64, editor Identity)
	// UpdateTimestampAtomic updates 'Timestamp' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateTimestampAtomic(transaction ITransaction, timestamp int64, editor Identity)
	// From returns 'From' of this 'ActivityPubOutgoingActivity' instance.
	From() string
	// UpdateFrom directly updates 'From' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateFrom(from string, editor Identity)
	// UpdateFromAtomic updates 'From' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateFromAtomic(transaction ITransaction, from string, editor Identity)
	// To returns 'To' of this 'ActivityPubOutgoingActivity' instance.
	To() string
	// UpdateTo directly updates 'To' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateTo(to string, editor Identity)
	// UpdateToAtomic updates 'To' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateToAtomic(transaction ITransaction, to string, editor Identity)
	// Content returns 'Content' of this 'ActivityPubOutgoingActivity' instance.
	Content() string
	// UpdateContent directly updates 'Content' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateContent(content string, editor Identity)
	// UpdateContentAtomic updates 'Content' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateContentAtomic(transaction ITransaction, content string, editor Identity)
	// Raw returns 'Raw' of this 'ActivityPubOutgoingActivity' instance.
	Raw() string
	// UpdateRaw directly updates 'Raw' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateRaw(raw string, editor Identity)
	// UpdateRawAtomic updates 'Raw' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateRawAtomic(transaction ITransaction, raw string, editor Identity)
}

type IActivityPubOutgoingActivityCollection

type IActivityPubOutgoingActivityCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubOutgoingActivity
	Append(activityPubOutgoingActivity IActivityPubOutgoingActivity)
	ForEach(ActivityPubOutgoingActivityIterator)
	Reverse() IActivityPubOutgoingActivityCollection
	Array() ActivityPubOutgoingActivities
}

type IActivityPubOutgoingActivityManager

type IActivityPubOutgoingActivityManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubOutgoingActivityCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubOutgoingActivityCondition) bool
	ListActivityPubOutgoingActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubOutgoingActivityCollection
	GetActivityPubOutgoingActivity(id int64, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivityWithCustomId(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivityObject(activityPubOutgoingActivity IActivityPubOutgoingActivity, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivityAtomic(transaction ITransaction, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivityWithCustomIdAtomic(id int64, transaction ITransaction, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivityObjectAtomic(transaction ITransaction, activityPubOutgoingActivity IActivityPubOutgoingActivity, editor Identity) (IActivityPubOutgoingActivity, error)
	Log(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, source string, editor Identity, payload string)
	UpdateActivityPubOutgoingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	UpdateActivityPubOutgoingActivityObject(id int64, activityPubOutgoingActivity IActivityPubOutgoingActivity, editor Identity) (IActivityPubOutgoingActivity, error)
	UpdateActivityPubOutgoingActivityAtomic(transaction ITransaction, id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	UpdateActivityPubOutgoingActivityObjectAtomic(transaction ITransaction, id int64, activityPubOutgoingActivity IActivityPubOutgoingActivity, editor Identity) (IActivityPubOutgoingActivity, error)
	AddOrUpdateActivityPubOutgoingActivityObject(id int64, activityPubOutgoingActivity IActivityPubOutgoingActivity, editor Identity) (IActivityPubOutgoingActivity, error)
	AddOrUpdateActivityPubOutgoingActivityObjectAtomic(transaction ITransaction, id int64, activityPubOutgoingActivity IActivityPubOutgoingActivity, editor Identity) (IActivityPubOutgoingActivity, error)
	RemoveActivityPubOutgoingActivity(id int64, editor Identity) (IActivityPubOutgoingActivity, error)
	RemoveActivityPubOutgoingActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubOutgoingActivity, error)
	Find(id int64) IActivityPubOutgoingActivity
	ForEach(iterator ActivityPubOutgoingActivityIterator)
	Filter(predicate ActivityPubOutgoingActivityFilterPredicate) IActivityPubOutgoingActivityCollection
	Map(predicate ActivityPubOutgoingActivityMapPredicate) IActivityPubOutgoingActivityCollection
	ListActivityPubOutgoingActivitiesByIdentity(identityId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubOutgoingActivityCollection
	ForEachByIdentity(identityId int64, iterator ActivityPubOutgoingActivityIterator)
}

type IActivityPubPublicKey

type IActivityPubPublicKey interface {
	// Id returns 'Id' of this 'ActivityPubPublicKey' instance.
	Id() string
	// SetId sets 'Id' in-memory value of this 'ActivityPubPublicKey' instance.
	// This doesn't affect the persistent data store.
	SetId(id string)
	// Owner returns 'Owner' of this 'ActivityPubPublicKey' instance.
	Owner() string
	// SetOwner sets 'Owner' in-memory value of this 'ActivityPubPublicKey' instance.
	// This doesn't affect the persistent data store.
	SetOwner(owner string)
	// PublicKeyPem returns 'PublicKeyPem' of this 'ActivityPubPublicKey' instance.
	PublicKeyPem() string
	// SetPublicKeyPem sets 'PublicKeyPem' in-memory value of this 'ActivityPubPublicKey' instance.
	// This doesn't affect the persistent data store.
	SetPublicKeyPem(publicKeyPem string)
}

type IActivityPubPublicKeyCollection

type IActivityPubPublicKeyCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IActivityPubPublicKey
	Append(activityPubPublicKey IActivityPubPublicKey)
	ForEach(ActivityPubPublicKeyIterator)
	Reverse() IActivityPubPublicKeyCollection
	Array() ActivityPubPublicKeys
}

type IActivityPubPublicKeyManager

type IActivityPubPublicKeyManager interface {
	ISystemComponent
	OnCacheChanged(ActivityPubPublicKeyCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition ActivityPubPublicKeyCondition) bool
	ListActivityPubPublicKeys(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubPublicKeyCollection
	GetActivityPubPublicKey(id int64, editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKey(editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKeyWithCustomId(id int64, editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKeyObject(activityPubPublicKey IActivityPubPublicKey, editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKeyAtomic(transaction ITransaction, editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKeyWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKeyObjectAtomic(transaction ITransaction, activityPubPublicKey IActivityPubPublicKey, editor Identity) (IActivityPubPublicKey, error)
	Log(source string, editor Identity, payload string)
	UpdateActivityPubPublicKey(id int64, editor Identity) (IActivityPubPublicKey, error)
	UpdateActivityPubPublicKeyObject(id int64, activityPubPublicKey IActivityPubPublicKey, editor Identity) (IActivityPubPublicKey, error)
	UpdateActivityPubPublicKeyAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubPublicKey, error)
	UpdateActivityPubPublicKeyObjectAtomic(transaction ITransaction, id int64, activityPubPublicKey IActivityPubPublicKey, editor Identity) (IActivityPubPublicKey, error)
	AddOrUpdateActivityPubPublicKeyObject(id int64, activityPubPublicKey IActivityPubPublicKey, editor Identity) (IActivityPubPublicKey, error)
	AddOrUpdateActivityPubPublicKeyObjectAtomic(transaction ITransaction, id int64, activityPubPublicKey IActivityPubPublicKey, editor Identity) (IActivityPubPublicKey, error)
	RemoveActivityPubPublicKey(id int64, editor Identity) (IActivityPubPublicKey, error)
	RemoveActivityPubPublicKeyAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubPublicKey, error)
	Find(id int64) IActivityPubPublicKey
	ForEach(iterator ActivityPubPublicKeyIterator)
	Filter(predicate ActivityPubPublicKeyFilterPredicate) IActivityPubPublicKeyCollection
	Map(predicate ActivityPubPublicKeyMapPredicate) IActivityPubPublicKeyCollection
}

type IApi

type IApi interface {
	SetToken(string)
	SetDebugMode(bool)
	//API Methods
	SystemCall(*SystemCallRequest) (*SystemCallResult, error)
	Echo(*EchoRequest) (*EchoResult, error)
	GetServerConfiguration(*GetServerConfigurationRequest) (*GetServerConfigurationResult, error)
	CheckUsernameAvailability(*CheckUsernameAvailabilityRequest) (*CheckUsernameAvailabilityResult, error)
	Signup(*SignupRequest) (*SignupResult, error)
	ResendVerificationCode(*ResendVerificationCodeRequest) (*ResendVerificationCodeResult, error)
	Verify(*VerifyRequest) (*VerifyResult, error)
	Login(*LoginRequest) (*LoginResult, error)
	GetProfileByUser(*GetProfileByUserRequest) (*GetProfileByUserResult, error)
	UpdateProfileByUser(*UpdateProfileByUserRequest) (*UpdateProfileByUserResult, error)
	ChangePassword(*ChangePasswordRequest) (*ChangePasswordResult, error)
	ResetPassword(*ResetPasswordRequest) (*ResetPasswordResult, error)
	Logout(*LogoutRequest) (*LogoutResult, error)
	Webfinger(*WebfingerRequest) (*WebfingerResult, error)
	GetPackages(*GetPackagesRequest) (*GetPackagesResult, error)
	GetActor(*GetActorRequest) (*GetActorResult, error)
	FollowActor(*FollowActorRequest) (*FollowActorResult, error)
	AuthorizeInteraction(*AuthorizeInteractionRequest) (*AuthorizeInteractionResult, error)
	GetFollowers(*GetFollowersRequest) (*GetFollowersResult, error)
	GetFollowing(*GetFollowingRequest) (*GetFollowingResult, error)
	PostToOutbox(*PostToOutboxRequest) (*PostToOutboxResult, error)
	GetOutbox(*GetOutboxRequest) (*GetOutboxResult, error)
	PostToInbox(*PostToInboxRequest) (*PostToInboxResult, error)
	GetInbox(*GetInboxRequest) (*GetInboxResult, error)
}

type IAssertionResult

type IAssertionResult interface {
	Or(error)
}

type IAuthorizeInteractionResult

type IAuthorizeInteractionResult interface {
	Uri() string
	Success() bool
}

type ICategory

type ICategory interface {
	IObject
	// DependenciesAreUnknown scans all dependencies to make sure a valid parent is set for all of them.
	DependenciesAreUnknown() bool
	// CategoryTypeId returns parent 'CategoryTypeId' of this 'Category' instance.
	CategoryTypeId() int64
	// AssertBelongsToCategoryType checks whether this 'Category' instance is a child of the specified 'CategoryType'
	AssertBelongsToCategoryType(categoryType ICategoryType)
	// CategoryTypeIsUnknown checks whether a valid parent 'CategoryTypeId' is provided for this 'Category' instance or not.
	CategoryTypeIsUnknown() bool
	// AssertCategoryTypeIsProvided asserts that a valid 'CategoryTypeId' is provided for this 'Category' instance. A panic will occur if the assertion is not valid.
	AssertCategoryTypeIsProvided()
	// AssertCategoryType asserts the given 'CategoryTypeId' is in fact the parent of this 'Category' instance. A panic will occur if the assertion is not valid.
	AssertCategoryType(categoryTypeId int64)
	// CategoryId returns parent 'CategoryId' of this 'Category' instance.
	CategoryId() int64
	// AssertBelongsToCategory checks whether this 'Category' instance is a child of the specified 'Category'
	AssertBelongsToCategory(category ICategory)
	// CategoryIsUnknown checks whether a valid parent 'CategoryId' is provided for this 'Category' instance or not.
	CategoryIsUnknown() bool
	// AssertCategoryIsProvided asserts that a valid 'CategoryId' is provided for this 'Category' instance. A panic will occur if the assertion is not valid.
	AssertCategoryIsProvided()
	// AssertCategory asserts the given 'CategoryId' is in fact the parent of this 'Category' instance. A panic will occur if the assertion is not valid.
	AssertCategory(categoryId int64)
	// Title returns 'Title' of this 'Category' instance.
	Title() string
	// UpdateTitle directly updates 'Title' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateTitle(title string, editor Identity)
	// UpdateTitleAtomic updates 'Title' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateTitleAtomic(transaction ITransaction, title string, editor Identity)
	// Description returns 'Description' of this 'Category' instance.
	Description() string
	// UpdateDescription directly updates 'Description' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateDescription(description string, editor Identity)
	// UpdateDescriptionAtomic updates 'Description' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateDescriptionAtomic(transaction ITransaction, description string, editor Identity)
	// SortOrder returns 'SortOrder' of this 'Category' instance.
	SortOrder() float32
	// UpdateSortOrder directly updates 'SortOrder' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateSortOrder(sortOrder float32, editor Identity)
	// UpdateSortOrderAtomic updates 'SortOrder' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateSortOrderAtomic(transaction ITransaction, sortOrder float32, editor Identity)
}

type ICategoryCollection

type ICategoryCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() ICategory
	Append(category ICategory)
	ForEach(CategoryIterator)
	Reverse() ICategoryCollection
	Array() Categories
}

type ICategoryManager

type ICategoryManager interface {
	ISystemComponent
	OnCacheChanged(CategoryCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition CategoryCondition) bool
	ListCategories(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryCollection
	GetCategory(id int64, editor Identity) (ICategory, error)
	AddCategory(categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	AddCategoryWithCustomId(id int64, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	AddCategoryObject(category ICategory, editor Identity) (ICategory, error)
	AddCategoryAtomic(transaction ITransaction, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	AddCategoryWithCustomIdAtomic(id int64, transaction ITransaction, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	AddCategoryObjectAtomic(transaction ITransaction, category ICategory, editor Identity) (ICategory, error)
	Log(categoryTypeId int64, categoryId int64, title string, description string, source string, editor Identity, payload string)
	UpdateCategory(id int64, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	UpdateCategoryObject(id int64, category ICategory, editor Identity) (ICategory, error)
	UpdateCategoryAtomic(transaction ITransaction, id int64, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	UpdateCategoryObjectAtomic(transaction ITransaction, id int64, category ICategory, editor Identity) (ICategory, error)
	AddOrUpdateCategoryObject(id int64, category ICategory, editor Identity) (ICategory, error)
	AddOrUpdateCategoryObjectAtomic(transaction ITransaction, id int64, category ICategory, editor Identity) (ICategory, error)
	RemoveCategory(id int64, editor Identity) (ICategory, error)
	RemoveCategoryAtomic(transaction ITransaction, id int64, editor Identity) (ICategory, error)
	Find(id int64) ICategory
	ForEach(iterator CategoryIterator)
	Filter(predicate CategoryFilterPredicate) ICategoryCollection
	Map(predicate CategoryMapPredicate) ICategoryCollection
	ListCategoriesByCategoryType(categoryTypeId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryCollection
	ForEachByCategoryType(categoryTypeId int64, iterator CategoryIterator)
	ListCategoriesByCategory(categoryId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryCollection
	ForEachByCategory(categoryId int64, iterator CategoryIterator)
}

type ICategoryType

type ICategoryType interface {
	IObject
	// Description returns 'Description' of this 'CategoryType' instance.
	Description() string
	// UpdateDescription directly updates 'Description' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateDescription(description string, editor Identity)
	// UpdateDescriptionAtomic updates 'Description' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateDescriptionAtomic(transaction ITransaction, description string, editor Identity)
}

type ICategoryTypeCollection

type ICategoryTypeCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() ICategoryType
	Append(categoryType ICategoryType)
	ForEach(CategoryTypeIterator)
	Reverse() ICategoryTypeCollection
	Array() CategoryTypes
}

type ICategoryTypeManager

type ICategoryTypeManager interface {
	ISystemComponent
	OnCacheChanged(CategoryTypeCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition CategoryTypeCondition) bool
	ListCategoryTypes(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryTypeCollection
	GetCategoryType(id int64, editor Identity) (ICategoryType, error)
	AddCategoryType(description string, editor Identity) (ICategoryType, error)
	AddCategoryTypeWithCustomId(id int64, description string, editor Identity) (ICategoryType, error)
	AddCategoryTypeObject(categoryType ICategoryType, editor Identity) (ICategoryType, error)
	AddCategoryTypeAtomic(transaction ITransaction, description string, editor Identity) (ICategoryType, error)
	AddCategoryTypeWithCustomIdAtomic(id int64, transaction ITransaction, description string, editor Identity) (ICategoryType, error)
	AddCategoryTypeObjectAtomic(transaction ITransaction, categoryType ICategoryType, editor Identity) (ICategoryType, error)
	Log(description string, source string, editor Identity, payload string)
	UpdateCategoryType(id int64, description string, editor Identity) (ICategoryType, error)
	UpdateCategoryTypeObject(id int64, categoryType ICategoryType, editor Identity) (ICategoryType, error)
	UpdateCategoryTypeAtomic(transaction ITransaction, id int64, description string, editor Identity) (ICategoryType, error)
	UpdateCategoryTypeObjectAtomic(transaction ITransaction, id int64, categoryType ICategoryType, editor Identity) (ICategoryType, error)
	AddOrUpdateCategoryTypeObject(id int64, categoryType ICategoryType, editor Identity) (ICategoryType, error)
	AddOrUpdateCategoryTypeObjectAtomic(transaction ITransaction, id int64, categoryType ICategoryType, editor Identity) (ICategoryType, error)
	RemoveCategoryType(id int64, editor Identity) (ICategoryType, error)
	RemoveCategoryTypeAtomic(transaction ITransaction, id int64, editor Identity) (ICategoryType, error)
	Find(id int64) ICategoryType
	ForEach(iterator CategoryTypeIterator)
	Filter(predicate CategoryTypeFilterPredicate) ICategoryTypeCollection
	Map(predicate CategoryTypeMapPredicate) ICategoryTypeCollection
}

type IChangePasswordResult

type IChangePasswordResult interface {
}

type ICheckUsernameAvailabilityResult

type ICheckUsernameAvailabilityResult interface {
	IsAvailable() bool
}

type IConductor

type IConductor interface {
	Logger() ILogger
	Configuration() IConfiguration
	Atomic(handler TransactionHandler) error
	Schedule(spec string, callback func()) error
	GetSystemComponent(name string) ISystemComponent
	RequestActivityStream(method, url, publicKeyId, privateKey string, input, output interface{}) error
	LogRemoteCall(context IContext, eventType uint32, source string, input, result interface{}, err error)

	// Document
	DocumentManager() IDocumentManager
	DocumentExists(id int64) bool
	ListDocuments(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IDocumentCollection
	GetDocument(id int64, editor Identity) (IDocument, error)
	AddDocument(content string, editor Identity) (IDocument, error)
	AddDocumentAtomic(transaction ITransaction, content string, editor Identity) (IDocument, error)
	LogDocument(content string, source string, editor Identity, payload string)
	UpdateDocument(id int64, content string, editor Identity) (IDocument, error)
	UpdateDocumentAtomic(transaction ITransaction, id int64, content string, editor Identity) (IDocument, error)
	RemoveDocument(id int64, editor Identity) (IDocument, error)
	RemoveDocumentAtomic(transaction ITransaction, id int64, editor Identity) (IDocument, error)

	// SystemSchedule
	SystemScheduleManager() ISystemScheduleManager
	SystemScheduleExists(id int64) bool
	ListSystemSchedules(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ISystemScheduleCollection
	GetSystemSchedule(id int64, editor Identity) (ISystemSchedule, error)
	AddSystemSchedule(enabled bool, config string, editor Identity) (ISystemSchedule, error)
	AddSystemScheduleAtomic(transaction ITransaction, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	LogSystemSchedule(enabled bool, config string, source string, editor Identity, payload string)
	UpdateSystemSchedule(id int64, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	UpdateSystemScheduleAtomic(transaction ITransaction, id int64, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	RemoveSystemSchedule(id int64, editor Identity) (ISystemSchedule, error)
	RemoveSystemScheduleAtomic(transaction ITransaction, id int64, editor Identity) (ISystemSchedule, error)

	// Identity
	IdentityManager() IIdentityManager
	IdentityExists(id int64) bool
	ListIdentities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IIdentityCollection
	GetIdentity(id int64, editor Identity) (IIdentity, error)
	GetIdentityByUsername(username string, editor Identity) (IIdentity, error)
	AddIdentity(username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	AddIdentityAtomic(transaction ITransaction, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	LogIdentity(username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, source string, editor Identity, payload string)
	UpdateIdentity(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	UpdateIdentityAtomic(transaction ITransaction, id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	RemoveIdentity(id int64, editor Identity) (IIdentity, error)
	RemoveIdentityAtomic(transaction ITransaction, id int64, editor Identity) (IIdentity, error)

	// AccessControl
	AccessControlManager() IAccessControlManager
	AccessControlExists(id int64) bool
	ListAccessControls(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IAccessControlCollection
	GetAccessControl(id int64, editor Identity) (IAccessControl, error)
	AddAccessControl(key uint64, value uint64, editor Identity) (IAccessControl, error)
	AddAccessControlAtomic(transaction ITransaction, key uint64, value uint64, editor Identity) (IAccessControl, error)
	LogAccessControl(key uint64, value uint64, source string, editor Identity, payload string)
	UpdateAccessControl(id int64, key uint64, value uint64, editor Identity) (IAccessControl, error)
	UpdateAccessControlAtomic(transaction ITransaction, id int64, key uint64, value uint64, editor Identity) (IAccessControl, error)
	RemoveAccessControl(id int64, editor Identity) (IAccessControl, error)
	RemoveAccessControlAtomic(transaction ITransaction, id int64, editor Identity) (IAccessControl, error)

	// RemoteActivity
	RemoteActivityManager() IRemoteActivityManager
	RemoteActivityExists(id int64) bool
	ListRemoteActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IRemoteActivityCollection
	GetRemoteActivity(id int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivity(entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivityAtomic(transaction ITransaction, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	LogRemoteActivity(entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, source string, editor Identity, payload string)
	UpdateRemoteActivity(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	UpdateRemoteActivityAtomic(transaction ITransaction, id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	RemoveRemoteActivity(id int64, editor Identity) (IRemoteActivity, error)
	RemoveRemoteActivityAtomic(transaction ITransaction, id int64, editor Identity) (IRemoteActivity, error)

	// CategoryType
	CategoryTypeManager() ICategoryTypeManager
	CategoryTypeExists(id int64) bool
	ListCategoryTypes(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryTypeCollection
	GetCategoryType(id int64, editor Identity) (ICategoryType, error)
	AddCategoryType(description string, editor Identity) (ICategoryType, error)
	AddCategoryTypeAtomic(transaction ITransaction, description string, editor Identity) (ICategoryType, error)
	LogCategoryType(description string, source string, editor Identity, payload string)
	UpdateCategoryType(id int64, description string, editor Identity) (ICategoryType, error)
	UpdateCategoryTypeAtomic(transaction ITransaction, id int64, description string, editor Identity) (ICategoryType, error)
	RemoveCategoryType(id int64, editor Identity) (ICategoryType, error)
	RemoveCategoryTypeAtomic(transaction ITransaction, id int64, editor Identity) (ICategoryType, error)

	// Category
	CategoryManager() ICategoryManager
	CategoryExists(id int64) bool
	ListCategories(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryCollection
	GetCategory(id int64, editor Identity) (ICategory, error)
	AddCategory(categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	AddCategoryAtomic(transaction ITransaction, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	LogCategory(categoryTypeId int64, categoryId int64, title string, description string, source string, editor Identity, payload string)
	UpdateCategory(id int64, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	UpdateCategoryAtomic(transaction ITransaction, id int64, categoryTypeId int64, categoryId int64, title string, description string, editor Identity) (ICategory, error)
	RemoveCategory(id int64, editor Identity) (ICategory, error)
	RemoveCategoryAtomic(transaction ITransaction, id int64, editor Identity) (ICategory, error)
	ListCategoriesByCategoryType(categoryTypeId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryCollection
	ForEachCategoryByCategoryType(categoryTypeId int64, iterator CategoryIterator)
	ListCategoriesByCategory(categoryId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) ICategoryCollection
	ForEachCategoryByCategory(categoryId int64, iterator CategoryIterator)

	// User
	UserManager() IUserManager
	UserExists(id int64) bool
	ListUsers(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IUserCollection
	GetUser(id int64, editor Identity) (IUser, error)
	AddUser(identityId int64, github string, editor Identity) (IUser, error)
	AddUserAtomic(transaction ITransaction, identityId int64, github string, editor Identity) (IUser, error)
	LogUser(identityId int64, github string, source string, editor Identity, payload string)
	UpdateUser(id int64, github string, editor Identity) (IUser, error)
	UpdateUserAtomic(transaction ITransaction, id int64, github string, editor Identity) (IUser, error)
	RemoveUser(id int64, editor Identity) (IUser, error)
	RemoveUserAtomic(transaction ITransaction, id int64, editor Identity) (IUser, error)

	// ActivityPubObject
	ActivityPubObjectManager() IActivityPubObjectManager
	ActivityPubObjectExists(id int64) bool
	ListActivityPubObjects(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubObjectCollection
	GetActivityPubObject(id int64, editor Identity) (IActivityPubObject, error)
	AddActivityPubObject(editor Identity) (IActivityPubObject, error)
	AddActivityPubObjectAtomic(transaction ITransaction, editor Identity) (IActivityPubObject, error)
	LogActivityPubObject(source string, editor Identity, payload string)
	UpdateActivityPubObject(id int64, editor Identity) (IActivityPubObject, error)
	UpdateActivityPubObjectAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubObject, error)
	RemoveActivityPubObject(id int64, editor Identity) (IActivityPubObject, error)
	RemoveActivityPubObjectAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubObject, error)

	// ActivityPubActivity
	ActivityPubActivityManager() IActivityPubActivityManager
	ActivityPubActivityExists(id int64) bool
	ListActivityPubActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubActivityCollection
	GetActivityPubActivity(id int64, editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivity(editor Identity) (IActivityPubActivity, error)
	AddActivityPubActivityAtomic(transaction ITransaction, editor Identity) (IActivityPubActivity, error)
	LogActivityPubActivity(source string, editor Identity, payload string)
	UpdateActivityPubActivity(id int64, editor Identity) (IActivityPubActivity, error)
	UpdateActivityPubActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubActivity, error)
	RemoveActivityPubActivity(id int64, editor Identity) (IActivityPubActivity, error)
	RemoveActivityPubActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubActivity, error)

	// ActivityPubPublicKey
	ActivityPubPublicKeyManager() IActivityPubPublicKeyManager
	ActivityPubPublicKeyExists(id int64) bool
	ListActivityPubPublicKeys(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubPublicKeyCollection
	GetActivityPubPublicKey(id int64, editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKey(editor Identity) (IActivityPubPublicKey, error)
	AddActivityPubPublicKeyAtomic(transaction ITransaction, editor Identity) (IActivityPubPublicKey, error)
	LogActivityPubPublicKey(source string, editor Identity, payload string)
	UpdateActivityPubPublicKey(id int64, editor Identity) (IActivityPubPublicKey, error)
	UpdateActivityPubPublicKeyAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubPublicKey, error)
	RemoveActivityPubPublicKey(id int64, editor Identity) (IActivityPubPublicKey, error)
	RemoveActivityPubPublicKeyAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubPublicKey, error)

	// ActivityPubLink
	ActivityPubLinkManager() IActivityPubLinkManager
	ActivityPubLinkExists(id int64) bool
	ListActivityPubLinks(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubLinkCollection
	GetActivityPubLink(id int64, editor Identity) (IActivityPubLink, error)
	AddActivityPubLink(editor Identity) (IActivityPubLink, error)
	AddActivityPubLinkAtomic(transaction ITransaction, editor Identity) (IActivityPubLink, error)
	LogActivityPubLink(source string, editor Identity, payload string)
	UpdateActivityPubLink(id int64, editor Identity) (IActivityPubLink, error)
	UpdateActivityPubLinkAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubLink, error)
	RemoveActivityPubLink(id int64, editor Identity) (IActivityPubLink, error)
	RemoveActivityPubLinkAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubLink, error)

	// ActivityPubMedia
	ActivityPubMediaManager() IActivityPubMediaManager
	ActivityPubMediaExists(id int64) bool
	ListActivityPubMedias(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubMediaCollection
	GetActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error)
	AddActivityPubMedia(editor Identity) (IActivityPubMedia, error)
	AddActivityPubMediaAtomic(transaction ITransaction, editor Identity) (IActivityPubMedia, error)
	LogActivityPubMedia(source string, editor Identity, payload string)
	UpdateActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error)
	UpdateActivityPubMediaAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubMedia, error)
	RemoveActivityPubMedia(id int64, editor Identity) (IActivityPubMedia, error)
	RemoveActivityPubMediaAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubMedia, error)

	// ActivityPubIncomingActivity
	ActivityPubIncomingActivityManager() IActivityPubIncomingActivityManager
	ActivityPubIncomingActivityExists(id int64) bool
	ListActivityPubIncomingActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubIncomingActivityCollection
	GetActivityPubIncomingActivity(id int64, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	AddActivityPubIncomingActivityAtomic(transaction ITransaction, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	LogActivityPubIncomingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, source string, editor Identity, payload string)
	UpdateActivityPubIncomingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	UpdateActivityPubIncomingActivityAtomic(transaction ITransaction, id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubIncomingActivity, error)
	RemoveActivityPubIncomingActivity(id int64, editor Identity) (IActivityPubIncomingActivity, error)
	RemoveActivityPubIncomingActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubIncomingActivity, error)
	ListActivityPubIncomingActivitiesByIdentity(identityId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubIncomingActivityCollection
	ForEachActivityPubIncomingActivityByIdentity(identityId int64, iterator ActivityPubIncomingActivityIterator)

	// ActivityPubOutgoingActivity
	ActivityPubOutgoingActivityManager() IActivityPubOutgoingActivityManager
	ActivityPubOutgoingActivityExists(id int64) bool
	ListActivityPubOutgoingActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubOutgoingActivityCollection
	GetActivityPubOutgoingActivity(id int64, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	AddActivityPubOutgoingActivityAtomic(transaction ITransaction, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	LogActivityPubOutgoingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, source string, editor Identity, payload string)
	UpdateActivityPubOutgoingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	UpdateActivityPubOutgoingActivityAtomic(transaction ITransaction, id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, editor Identity) (IActivityPubOutgoingActivity, error)
	RemoveActivityPubOutgoingActivity(id int64, editor Identity) (IActivityPubOutgoingActivity, error)
	RemoveActivityPubOutgoingActivityAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubOutgoingActivity, error)
	ListActivityPubOutgoingActivitiesByIdentity(identityId int64, pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubOutgoingActivityCollection
	ForEachActivityPubOutgoingActivityByIdentity(identityId int64, iterator ActivityPubOutgoingActivityIterator)

	// ActivityPubFollower
	ActivityPubFollowerManager() IActivityPubFollowerManager
	ActivityPubFollowerExists(id int64) bool
	ListActivityPubFollowers(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IActivityPubFollowerCollection
	GetActivityPubFollower(id int64, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollower(handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	AddActivityPubFollowerAtomic(transaction ITransaction, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	LogActivityPubFollower(handle string, inbox string, subject string, activity string, accepted bool, source string, editor Identity, payload string)
	UpdateActivityPubFollower(id int64, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	UpdateActivityPubFollowerAtomic(transaction ITransaction, id int64, handle string, inbox string, subject string, activity string, accepted bool, editor Identity) (IActivityPubFollower, error)
	RemoveActivityPubFollower(id int64, editor Identity) (IActivityPubFollower, error)
	RemoveActivityPubFollowerAtomic(transaction ITransaction, id int64, editor Identity) (IActivityPubFollower, error)

	// Spi
	SpiManager() ISpiManager
	SpiExists(id int64) bool
	ListSpis(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ISpiCollection
	GetSpi(id int64, editor Identity) (ISpi, error)
	AddSpi(editor Identity) (ISpi, error)
	AddSpiAtomic(transaction ITransaction, editor Identity) (ISpi, error)
	LogSpi(source string, editor Identity, payload string)
	UpdateSpi(id int64, editor Identity) (ISpi, error)
	UpdateSpiAtomic(transaction ITransaction, id int64, editor Identity) (ISpi, error)
	RemoveSpi(id int64, editor Identity) (ISpi, error)
	RemoveSpiAtomic(transaction ITransaction, id int64, editor Identity) (ISpi, error)
	Echo(document IDocument, editor Identity) (IEchoResult, error)
	GetServerConfiguration(editor Identity) (IGetServerConfigurationResult, error)
	CheckUsernameAvailability(username string, editor Identity) (ICheckUsernameAvailabilityResult, error)
	Signup(username string, email string, password string, editor Identity) (ISignupResult, error)
	ResendVerificationCode(email string, editor Identity) (IResendVerificationCodeResult, error)
	Verify(email string, token string, code string, editor Identity) (IVerifyResult, error)
	Login(email string, password string, editor Identity) (ILoginResult, error)
	GetProfileByUser(editor Identity) (IGetProfileByUserResult, error)
	UpdateProfileByUser(displayName string, avatar string, banner string, summary string, github string, editor Identity) (IUpdateProfileByUserResult, error)
	ChangePassword(currentPassword string, newPassword string, editor Identity) (IChangePasswordResult, error)
	ResetPassword(usernameOrEmail string, editor Identity) (IResetPasswordResult, error)
	Logout(editor Identity) (ILogoutResult, error)
	Webfinger(resource string, editor Identity) (IWebfingerResult, error)
	GetPackages(editor Identity) (IGetPackagesResult, error)
	GetActor(username string, editor Identity) (IGetActorResult, error)
	FollowActor(username string, account string, editor Identity) (IFollowActorResult, error)
	AuthorizeInteraction(uri string, editor Identity) (IAuthorizeInteractionResult, error)
	GetFollowers(username string, editor Identity) (IGetFollowersResult, error)
	GetFollowing(username string, editor Identity) (IGetFollowingResult, error)
	PostToOutbox(username string, body []byte, editor Identity) (IPostToOutboxResult, error)
	GetOutbox(username string, editor Identity) (IGetOutboxResult, error)
	PostToInbox(username string, body []byte, editor Identity) (IPostToInboxResult, error)
	GetInbox(username string, editor Identity) (IGetInboxResult, error)

	NewDocument(id int64, content string) (IDocument, error)
	NewSystemSchedule(id int64, enabled bool, config string) (ISystemSchedule, error)
	NewIdentity(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32) (IIdentity, error)
	NewAccessControl(id int64, key uint64, value uint64) (IAccessControl, error)
	NewRemoteActivity(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64) (IRemoteActivity, error)
	NewCategoryType(id int64, description string) (ICategoryType, error)
	NewCategory(id int64, categoryTypeId int64, categoryId int64, title string, description string) (ICategory, error)
	NewUser(id int64, github string) (IUser, error)
	NewActivityPubObject() (IActivityPubObject, error)
	NewActivityPubActivity() (IActivityPubActivity, error)
	NewActivityPubPublicKey() (IActivityPubPublicKey, error)
	NewActivityPubLink() (IActivityPubLink, error)
	NewActivityPubMedia() (IActivityPubMedia, error)
	NewActivityPubIncomingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) (IActivityPubIncomingActivity, error)
	NewActivityPubOutgoingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) (IActivityPubOutgoingActivity, error)
	NewActivityPubFollower(id int64, handle string, inbox string, subject string, activity string, accepted bool) (IActivityPubFollower, error)
	NewSpi() (ISpi, error)
	NewEchoResult(document IDocument, ignored interface{}) IEchoResult
	NewGetServerConfigurationResult(product string, environment string, fqdn string, ignored interface{}) IGetServerConfigurationResult
	NewCheckUsernameAvailabilityResult(isAvailable bool, ignored interface{}) ICheckUsernameAvailabilityResult
	NewSignupResult(token string, code string, ignored interface{}) ISignupResult
	NewResendVerificationCodeResult(code string, ignored interface{}) IResendVerificationCodeResult
	NewVerifyResult(token string, ignored interface{}) IVerifyResult
	NewLoginResult(username string, token string, ignored interface{}) ILoginResult
	NewGetProfileByUserResult(username string, displayName string, avatar string, banner string, summary string, github string, ignored interface{}) IGetProfileByUserResult
	NewUpdateProfileByUserResult(displayName string, avatar string, banner string, summary string, github string, ignored interface{}) IUpdateProfileByUserResult
	NewChangePasswordResult(ignored interface{}) IChangePasswordResult
	NewResetPasswordResult(ignored interface{}) IResetPasswordResult
	NewLogoutResult(ignored interface{}) ILogoutResult
	NewWebfingerResult(aliases []string, links []IActivityPubLink, subject string, ignored interface{}) IWebfingerResult
	NewGetPackagesResult(body []byte, ignored interface{}) IGetPackagesResult
	NewGetActorResult(context []string, id string, followers string, following string, inbox string, outbox string, name string, preferredUsername string, type_ string, url string, icon IActivityPubMedia, image IActivityPubMedia, publicKey IActivityPubPublicKey, summary string, published string, ignored interface{}) IGetActorResult
	NewFollowActorResult(ignored interface{}) IFollowActorResult
	NewAuthorizeInteractionResult(uri string, success bool, ignored interface{}) IAuthorizeInteractionResult
	NewGetFollowersResult(context string, id string, type_ string, totalItems int32, orderedItems []string, first string, ignored interface{}) IGetFollowersResult
	NewGetFollowingResult(context string, id string, type_ string, totalItems int32, orderedItems []string, first string, ignored interface{}) IGetFollowingResult
	NewPostToOutboxResult(body []byte, ignored interface{}) IPostToOutboxResult
	NewGetOutboxResult(context string, id string, type_ string, totalItems int32, orderedItems []IActivityPubActivity, first string, ignored interface{}) IGetOutboxResult
	NewPostToInboxResult(body []byte, ignored interface{}) IPostToInboxResult
	NewGetInboxResult(context string, id string, type_ string, totalItems int32, orderedItems []IActivityPubActivity, first string, ignored interface{}) IGetInboxResult
}

type IDispatcher

type IDispatcher interface {
	Logger() ILogger
	Config() IConfiguration
	FQDN() string
	PublicUrl() string
	Accelerator() IDispatcherCache
	// Atomic initializes an atomic context using a new transaction.
	Atomic(SystemAction)
	// Schedule creates a new recurring event. First parameter is the cron style
	// schedule spec with a callback function as second parameter.
	Schedule(id int64, spec string, callback func(IDispatcher, string)) error
	// Transaction returns the current running transaction.
	Transaction() ITransaction
	// IdentityManager returns system identity manager.
	IdentityManager() IIdentityManager
	// Identity returns the current identity.
	Identity() Identity
	// CurrentUser returns the current user.
	CurrentUser() IUser
	// SignOut logs the current user out.
	SignOut() error

	// DocumentExists checks whether a specific 'Document' with the provided
	// unique identifier or 'Id' exists in the system.
	DocumentExists(id int64) bool
	// DocumentExistsWhich checks whether a specific 'Document' exists in the system
	// which satisfies the provided condition.
	DocumentExistsWhich(condition DocumentCondition) bool
	// ListDocuments returns a list of all 'Document' instances in the system.
	ListDocuments() IDocumentCollection
	// ForEachDocument loops over all 'Document' instances in the system running
	// the provided iterator for each of them.
	ForEachDocument(iterator DocumentIterator)
	// FilterDocuments returns a filtered list of 'Document' instances based
	// on the provided predicate.
	FilterDocuments(predicate DocumentFilterPredicate) IDocumentCollection
	// MapDocuments loops over all 'Document' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapDocuments(predicate DocumentMapPredicate) IDocumentCollection
	// GetDocument finds a specific 'Document' instance using
	// the provided unique identifier or 'Id'.
	GetDocument(id int64) IDocument
	// AddDocument creates a new 'Document' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddDocument(content string) IDocument
	// AddDocumentWithCustomId creates a new 'Document' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddDocumentWithCustomId(id int64, content string) IDocument
	// LogDocument creates a new 'Document' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogDocument(content string, source string, payload string)
	// UpdateDocument finds the 'Document' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateDocument(id int64, content string) IDocument
	// UpdateDocumentObject finds and updates the 'Document' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateDocumentObject(object IObject, document IDocument) IDocument
	// AddOrUpdateDocumentObject tries to find the 'Document' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateDocumentObject(object IObject, document IDocument) IDocument
	// RemoveDocument finds the 'Document' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveDocument(id int64) IDocument

	// SystemScheduleExists checks whether a specific 'System Schedule' with the provided
	// unique identifier or 'Id' exists in the system.
	SystemScheduleExists(id int64) bool
	// SystemScheduleExistsWhich checks whether a specific 'System Schedule' exists in the system
	// which satisfies the provided condition.
	SystemScheduleExistsWhich(condition SystemScheduleCondition) bool
	// ListSystemSchedules returns a list of all 'System Schedule' instances in the system.
	ListSystemSchedules() ISystemScheduleCollection
	// ForEachSystemSchedule loops over all 'System Schedule' instances in the system running
	// the provided iterator for each of them.
	ForEachSystemSchedule(iterator SystemScheduleIterator)
	// FilterSystemSchedules returns a filtered list of 'System Schedule' instances based
	// on the provided predicate.
	FilterSystemSchedules(predicate SystemScheduleFilterPredicate) ISystemScheduleCollection
	// MapSystemSchedules loops over all 'System Schedule' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapSystemSchedules(predicate SystemScheduleMapPredicate) ISystemScheduleCollection
	// GetSystemSchedule finds a specific 'System Schedule' instance using
	// the provided unique identifier or 'Id'.
	GetSystemSchedule(id int64) ISystemSchedule
	// AddSystemSchedule creates a new 'System Schedule' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddSystemSchedule(enabled bool, config string) ISystemSchedule
	// AddSystemScheduleWithCustomId creates a new 'System Schedule' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddSystemScheduleWithCustomId(id int64, enabled bool, config string) ISystemSchedule
	// LogSystemSchedule creates a new 'System Schedule' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogSystemSchedule(enabled bool, config string, source string, payload string)
	// UpdateSystemSchedule finds the 'System Schedule' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateSystemSchedule(id int64, enabled bool, config string) ISystemSchedule
	// UpdateSystemScheduleObject finds and updates the 'System Schedule' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateSystemScheduleObject(object IObject, systemSchedule ISystemSchedule) ISystemSchedule
	// AddOrUpdateSystemScheduleObject tries to find the 'System Schedule' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateSystemScheduleObject(object IObject, systemSchedule ISystemSchedule) ISystemSchedule
	// RemoveSystemSchedule finds the 'System Schedule' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveSystemSchedule(id int64) ISystemSchedule

	// IdentityExists checks whether a specific 'Identity' with the provided
	// unique identifier or 'Id' exists in the system.
	IdentityExists(id int64) bool
	// IdentityExistsWhich checks whether a specific 'Identity' exists in the system
	// which satisfies the provided condition.
	IdentityExistsWhich(condition IdentityCondition) bool
	// ListIdentities returns a list of all 'Identity' instances in the system.
	ListIdentities() IIdentityCollection
	// ForEachIdentity loops over all 'Identity' instances in the system running
	// the provided iterator for each of them.
	ForEachIdentity(iterator IdentityIterator)
	// FilterIdentities returns a filtered list of 'Identity' instances based
	// on the provided predicate.
	FilterIdentities(predicate IdentityFilterPredicate) IIdentityCollection
	// MapIdentities loops over all 'Identity' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapIdentities(predicate IdentityMapPredicate) IIdentityCollection
	// GetIdentity finds a specific 'Identity' instance using
	// the provided unique identifier or 'Id'.
	GetIdentity(id int64) IIdentity
	// GetIdentityByUsername finds a specific 'Identity' instance using the provided username.
	GetIdentityByUsername(username string) IIdentity
	// AddIdentity creates a new 'Identity' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddIdentity(username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32) IIdentity
	// AddIdentityWithCustomId creates a new 'Identity' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddIdentityWithCustomId(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32) IIdentity
	// LogIdentity creates a new 'Identity' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogIdentity(username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, source string, payload string)
	// UpdateIdentity finds the 'Identity' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateIdentity(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32) IIdentity
	// UpdateIdentityObject finds and updates the 'Identity' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateIdentityObject(object IObject, identity IIdentity) IIdentity
	// AddOrUpdateIdentityObject tries to find the 'Identity' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateIdentityObject(object IObject, identity IIdentity) IIdentity
	// RemoveIdentity finds the 'Identity' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveIdentity(id int64) IIdentity

	// AccessControlExists checks whether a specific 'Access Control' with the provided
	// unique identifier or 'Id' exists in the system.
	AccessControlExists(id int64) bool
	// AccessControlExistsWhich checks whether a specific 'Access Control' exists in the system
	// which satisfies the provided condition.
	AccessControlExistsWhich(condition AccessControlCondition) bool
	// ListAccessControls returns a list of all 'Access Control' instances in the system.
	ListAccessControls() IAccessControlCollection
	// ForEachAccessControl loops over all 'Access Control' instances in the system running
	// the provided iterator for each of them.
	ForEachAccessControl(iterator AccessControlIterator)
	// FilterAccessControls returns a filtered list of 'Access Control' instances based
	// on the provided predicate.
	FilterAccessControls(predicate AccessControlFilterPredicate) IAccessControlCollection
	// MapAccessControls loops over all 'Access Control' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapAccessControls(predicate AccessControlMapPredicate) IAccessControlCollection
	// GetAccessControl finds a specific 'Access Control' instance using
	// the provided unique identifier or 'Id'.
	GetAccessControl(id int64) IAccessControl
	// AddAccessControl creates a new 'Access Control' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddAccessControl(key uint64, value uint64) IAccessControl
	// AddAccessControlWithCustomId creates a new 'Access Control' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddAccessControlWithCustomId(id int64, key uint64, value uint64) IAccessControl
	// LogAccessControl creates a new 'Access Control' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogAccessControl(key uint64, value uint64, source string, payload string)
	// UpdateAccessControl finds the 'Access Control' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateAccessControl(id int64, key uint64, value uint64) IAccessControl
	// UpdateAccessControlObject finds and updates the 'Access Control' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateAccessControlObject(object IObject, accessControl IAccessControl) IAccessControl
	// AddOrUpdateAccessControlObject tries to find the 'Access Control' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateAccessControlObject(object IObject, accessControl IAccessControl) IAccessControl
	// RemoveAccessControl finds the 'Access Control' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveAccessControl(id int64) IAccessControl

	// RemoteActivityExists checks whether a specific 'Remote Activity' with the provided
	// unique identifier or 'Id' exists in the system.
	RemoteActivityExists(id int64) bool
	// RemoteActivityExistsWhich checks whether a specific 'Remote Activity' exists in the system
	// which satisfies the provided condition.
	RemoteActivityExistsWhich(condition RemoteActivityCondition) bool
	// ListRemoteActivities returns a list of all 'Remote Activity' instances in the system.
	ListRemoteActivities() IRemoteActivityCollection
	// ForEachRemoteActivity loops over all 'Remote Activity' instances in the system running
	// the provided iterator for each of them.
	ForEachRemoteActivity(iterator RemoteActivityIterator)
	// FilterRemoteActivities returns a filtered list of 'Remote Activity' instances based
	// on the provided predicate.
	FilterRemoteActivities(predicate RemoteActivityFilterPredicate) IRemoteActivityCollection
	// MapRemoteActivities loops over all 'Remote Activity' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapRemoteActivities(predicate RemoteActivityMapPredicate) IRemoteActivityCollection
	// GetRemoteActivity finds a specific 'Remote Activity' instance using
	// the provided unique identifier or 'Id'.
	GetRemoteActivity(id int64) IRemoteActivity
	// AddRemoteActivity creates a new 'Remote Activity' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddRemoteActivity(entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64) IRemoteActivity
	// AddRemoteActivityWithCustomId creates a new 'Remote Activity' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddRemoteActivityWithCustomId(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64) IRemoteActivity
	// LogRemoteActivity creates a new 'Remote Activity' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogRemoteActivity(entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, source string, payload string)
	// UpdateRemoteActivity finds the 'Remote Activity' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateRemoteActivity(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64) IRemoteActivity
	// UpdateRemoteActivityObject finds and updates the 'Remote Activity' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateRemoteActivityObject(object IObject, remoteActivity IRemoteActivity) IRemoteActivity
	// AddOrUpdateRemoteActivityObject tries to find the 'Remote Activity' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateRemoteActivityObject(object IObject, remoteActivity IRemoteActivity) IRemoteActivity
	// RemoveRemoteActivity finds the 'Remote Activity' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveRemoteActivity(id int64) IRemoteActivity

	// CategoryTypeExists checks whether a specific 'Category Type' with the provided
	// unique identifier or 'Id' exists in the system.
	CategoryTypeExists(id int64) bool
	// CategoryTypeExistsWhich checks whether a specific 'Category Type' exists in the system
	// which satisfies the provided condition.
	CategoryTypeExistsWhich(condition CategoryTypeCondition) bool
	// ListCategoryTypes returns a list of all 'Category Type' instances in the system.
	ListCategoryTypes() ICategoryTypeCollection
	// ForEachCategoryType loops over all 'Category Type' instances in the system running
	// the provided iterator for each of them.
	ForEachCategoryType(iterator CategoryTypeIterator)
	// FilterCategoryTypes returns a filtered list of 'Category Type' instances based
	// on the provided predicate.
	FilterCategoryTypes(predicate CategoryTypeFilterPredicate) ICategoryTypeCollection
	// MapCategoryTypes loops over all 'Category Type' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapCategoryTypes(predicate CategoryTypeMapPredicate) ICategoryTypeCollection
	// GetCategoryType finds a specific 'Category Type' instance using
	// the provided unique identifier or 'Id'.
	GetCategoryType(id int64) ICategoryType
	// AddCategoryType creates a new 'Category Type' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddCategoryType(description string) ICategoryType
	// AddCategoryTypeWithCustomId creates a new 'Category Type' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddCategoryTypeWithCustomId(id int64, description string) ICategoryType
	// LogCategoryType creates a new 'Category Type' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogCategoryType(description string, source string, payload string)
	// UpdateCategoryType finds the 'Category Type' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateCategoryType(id int64, description string) ICategoryType
	// UpdateCategoryTypeObject finds and updates the 'Category Type' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateCategoryTypeObject(object IObject, categoryType ICategoryType) ICategoryType
	// AddOrUpdateCategoryTypeObject tries to find the 'Category Type' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateCategoryTypeObject(object IObject, categoryType ICategoryType) ICategoryType
	// RemoveCategoryType finds the 'Category Type' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveCategoryType(id int64) ICategoryType

	// CategoryExists checks whether a specific 'Category' with the provided
	// unique identifier or 'Id' exists in the system.
	CategoryExists(id int64) bool
	// CategoryExistsWhich checks whether a specific 'Category' exists in the system
	// which satisfies the provided condition.
	CategoryExistsWhich(condition CategoryCondition) bool
	// ListCategories returns a list of all 'Category' instances in the system.
	ListCategories() ICategoryCollection
	// ForEachCategory loops over all 'Category' instances in the system running
	// the provided iterator for each of them.
	ForEachCategory(iterator CategoryIterator)
	// FilterCategories returns a filtered list of 'Category' instances based
	// on the provided predicate.
	FilterCategories(predicate CategoryFilterPredicate) ICategoryCollection
	// MapCategories loops over all 'Category' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapCategories(predicate CategoryMapPredicate) ICategoryCollection
	// GetCategory finds a specific 'Category' instance using
	// the provided unique identifier or 'Id'.
	GetCategory(id int64) ICategory
	// AddCategory creates a new 'Category' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddCategory(categoryTypeId int64, categoryId int64, title string, description string) ICategory
	// AddCategoryWithCustomId creates a new 'Category' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddCategoryWithCustomId(id int64, categoryTypeId int64, categoryId int64, title string, description string) ICategory
	// LogCategory creates a new 'Category' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogCategory(categoryTypeId int64, categoryId int64, title string, description string, source string, payload string)
	// UpdateCategory finds the 'Category' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateCategory(id int64, categoryTypeId int64, categoryId int64, title string, description string) ICategory
	// UpdateCategoryObject finds and updates the 'Category' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateCategoryObject(object IObject, category ICategory) ICategory
	// AddOrUpdateCategoryObject tries to find the 'Category' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateCategoryObject(object IObject, category ICategory) ICategory
	// RemoveCategory finds the 'Category' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveCategory(id int64) ICategory
	// ListCategoriesByCategoryType returns a list of all 'Category' instances in the system
	// that are children of the provided 'Category Type' instance.
	ListCategoriesByCategoryType(categoryType ICategoryType) ICategoryCollection
	// ListCategoriesByCategoryTypeId returns a list of all 'Category' instances in the system that are
	// children of the 'Category Type' instance with the provided unique identifier.
	ListCategoriesByCategoryTypeId(categoryTypeId int64) ICategoryCollection
	// ForEachCategoryByCategoryType loops over all 'Category' instances in the system that are children
	// of the provided 'Category Type' instance, running the provided iterator for each of them.
	ForEachCategoryByCategoryType(categoryType ICategoryType, iterator CategoryIterator)
	// ForEachCategoryByCategoryTypeId loops over all 'Category' instances in the system that are children
	// of the 'Category Type' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachCategoryByCategoryTypeId(categoryTypeId int64, iterator CategoryIterator)
	// ListCategoriesByCategory returns a list of all 'Category' instances in the system
	// that are children of the provided 'Category' instance.
	ListCategoriesByCategory(category ICategory) ICategoryCollection
	// ListCategoriesByCategoryId returns a list of all 'Category' instances in the system that are
	// children of the 'Category' instance with the provided unique identifier.
	ListCategoriesByCategoryId(categoryId int64) ICategoryCollection
	// ForEachCategoryByCategory loops over all 'Category' instances in the system that are children
	// of the provided 'Category' instance, running the provided iterator for each of them.
	ForEachCategoryByCategory(category ICategory, iterator CategoryIterator)
	// ForEachCategoryByCategoryId loops over all 'Category' instances in the system that are children
	// of the 'Category' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachCategoryByCategoryId(categoryId int64, iterator CategoryIterator)

	// UserExists checks whether a specific 'User' with the provided
	// unique identifier or 'Id' exists in the system.
	UserExists(id int64) bool
	// UserExistsWhich checks whether a specific 'User' exists in the system
	// which satisfies the provided condition.
	UserExistsWhich(condition UserCondition) bool
	// ListUsers returns a list of all 'User' instances in the system.
	ListUsers() IUserCollection
	// ForEachUser loops over all 'User' instances in the system running
	// the provided iterator for each of them.
	ForEachUser(iterator UserIterator)
	// FilterUsers returns a filtered list of 'User' instances based
	// on the provided predicate.
	FilterUsers(predicate UserFilterPredicate) IUserCollection
	// MapUsers loops over all 'User' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapUsers(predicate UserMapPredicate) IUserCollection
	// GetUser finds a specific 'User' instance using
	// the provided unique identifier or 'Id'.
	GetUser(id int64) IUser
	// AddUser creates a new 'User' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddUser(identityId int64, github string) IUser
	// AddUserObject creates a new 'User' instance with an auto-generated unique identifier using
	// the property values in provided instance and adds it to persistent data store and
	// system cache. The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddUserObject(identity IIdentity, user IUser) IUser
	// LogUser creates a new 'User' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogUser(identityId int64, github string, source string, payload string)
	// UpdateUser finds the 'User' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateUser(id int64, github string) IUser
	// UpdateUserObject finds and updates the 'User' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateUserObject(object IObject, user IUser) IUser
	// AddOrUpdateUserObject tries to find the 'User' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateUserObject(object IObject, user IUser) IUser
	// RemoveUser finds the 'User' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveUser(id int64) IUser

	// ActivityPubObjectExists checks whether a specific 'Activity Pub Object' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubObjectExists(id int64) bool
	// ActivityPubObjectExistsWhich checks whether a specific 'Activity Pub Object' exists in the system
	// which satisfies the provided condition.
	ActivityPubObjectExistsWhich(condition ActivityPubObjectCondition) bool
	// ListActivityPubObjects returns a list of all 'Activity Pub Object' instances in the system.
	ListActivityPubObjects() IActivityPubObjectCollection
	// ForEachActivityPubObject loops over all 'Activity Pub Object' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubObject(iterator ActivityPubObjectIterator)
	// FilterActivityPubObjects returns a filtered list of 'Activity Pub Object' instances based
	// on the provided predicate.
	FilterActivityPubObjects(predicate ActivityPubObjectFilterPredicate) IActivityPubObjectCollection
	// MapActivityPubObjects loops over all 'Activity Pub Object' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubObjects(predicate ActivityPubObjectMapPredicate) IActivityPubObjectCollection
	// GetActivityPubObject finds a specific 'Activity Pub Object' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubObject(id int64) IActivityPubObject
	// AddActivityPubObject creates a new 'Activity Pub Object' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubObject() IActivityPubObject
	// AddActivityPubObjectWithCustomId creates a new 'Activity Pub Object' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubObjectWithCustomId(id int64) IActivityPubObject
	// LogActivityPubObject creates a new 'Activity Pub Object' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubObject(source string, payload string)
	// UpdateActivityPubObject finds the 'Activity Pub Object' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubObject(id int64) IActivityPubObject
	// UpdateActivityPubObjectObject finds and updates the 'Activity Pub Object' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubObjectObject(object IObject, activityPubObject IActivityPubObject) IActivityPubObject
	// AddOrUpdateActivityPubObjectObject tries to find the 'Activity Pub Object' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubObjectObject(object IObject, activityPubObject IActivityPubObject) IActivityPubObject
	// RemoveActivityPubObject finds the 'Activity Pub Object' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubObject(id int64) IActivityPubObject

	// ActivityPubActivityExists checks whether a specific 'Activity Pub Activity' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubActivityExists(id int64) bool
	// ActivityPubActivityExistsWhich checks whether a specific 'Activity Pub Activity' exists in the system
	// which satisfies the provided condition.
	ActivityPubActivityExistsWhich(condition ActivityPubActivityCondition) bool
	// ListActivityPubActivities returns a list of all 'Activity Pub Activity' instances in the system.
	ListActivityPubActivities() IActivityPubActivityCollection
	// ForEachActivityPubActivity loops over all 'Activity Pub Activity' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubActivity(iterator ActivityPubActivityIterator)
	// FilterActivityPubActivities returns a filtered list of 'Activity Pub Activity' instances based
	// on the provided predicate.
	FilterActivityPubActivities(predicate ActivityPubActivityFilterPredicate) IActivityPubActivityCollection
	// MapActivityPubActivities loops over all 'Activity Pub Activity' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubActivities(predicate ActivityPubActivityMapPredicate) IActivityPubActivityCollection
	// GetActivityPubActivity finds a specific 'Activity Pub Activity' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubActivity(id int64) IActivityPubActivity
	// AddActivityPubActivity creates a new 'Activity Pub Activity' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubActivity() IActivityPubActivity
	// AddActivityPubActivityWithCustomId creates a new 'Activity Pub Activity' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubActivityWithCustomId(id int64) IActivityPubActivity
	// LogActivityPubActivity creates a new 'Activity Pub Activity' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubActivity(source string, payload string)
	// UpdateActivityPubActivity finds the 'Activity Pub Activity' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubActivity(id int64) IActivityPubActivity
	// UpdateActivityPubActivityObject finds and updates the 'Activity Pub Activity' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubActivityObject(object IObject, activityPubActivity IActivityPubActivity) IActivityPubActivity
	// AddOrUpdateActivityPubActivityObject tries to find the 'Activity Pub Activity' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubActivityObject(object IObject, activityPubActivity IActivityPubActivity) IActivityPubActivity
	// RemoveActivityPubActivity finds the 'Activity Pub Activity' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubActivity(id int64) IActivityPubActivity

	// ActivityPubPublicKeyExists checks whether a specific 'Activity Pub Public Key' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubPublicKeyExists(id int64) bool
	// ActivityPubPublicKeyExistsWhich checks whether a specific 'Activity Pub Public Key' exists in the system
	// which satisfies the provided condition.
	ActivityPubPublicKeyExistsWhich(condition ActivityPubPublicKeyCondition) bool
	// ListActivityPubPublicKeys returns a list of all 'Activity Pub Public Key' instances in the system.
	ListActivityPubPublicKeys() IActivityPubPublicKeyCollection
	// ForEachActivityPubPublicKey loops over all 'Activity Pub Public Key' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubPublicKey(iterator ActivityPubPublicKeyIterator)
	// FilterActivityPubPublicKeys returns a filtered list of 'Activity Pub Public Key' instances based
	// on the provided predicate.
	FilterActivityPubPublicKeys(predicate ActivityPubPublicKeyFilterPredicate) IActivityPubPublicKeyCollection
	// MapActivityPubPublicKeys loops over all 'Activity Pub Public Key' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubPublicKeys(predicate ActivityPubPublicKeyMapPredicate) IActivityPubPublicKeyCollection
	// GetActivityPubPublicKey finds a specific 'Activity Pub Public Key' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubPublicKey(id int64) IActivityPubPublicKey
	// AddActivityPubPublicKey creates a new 'Activity Pub Public Key' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubPublicKey() IActivityPubPublicKey
	// AddActivityPubPublicKeyWithCustomId creates a new 'Activity Pub Public Key' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubPublicKeyWithCustomId(id int64) IActivityPubPublicKey
	// LogActivityPubPublicKey creates a new 'Activity Pub Public Key' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubPublicKey(source string, payload string)
	// UpdateActivityPubPublicKey finds the 'Activity Pub Public Key' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubPublicKey(id int64) IActivityPubPublicKey
	// UpdateActivityPubPublicKeyObject finds and updates the 'Activity Pub Public Key' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubPublicKeyObject(object IObject, activityPubPublicKey IActivityPubPublicKey) IActivityPubPublicKey
	// AddOrUpdateActivityPubPublicKeyObject tries to find the 'Activity Pub Public Key' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubPublicKeyObject(object IObject, activityPubPublicKey IActivityPubPublicKey) IActivityPubPublicKey
	// RemoveActivityPubPublicKey finds the 'Activity Pub Public Key' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubPublicKey(id int64) IActivityPubPublicKey

	// ActivityPubLinkExists checks whether a specific 'Activity Pub Link' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubLinkExists(id int64) bool
	// ActivityPubLinkExistsWhich checks whether a specific 'Activity Pub Link' exists in the system
	// which satisfies the provided condition.
	ActivityPubLinkExistsWhich(condition ActivityPubLinkCondition) bool
	// ListActivityPubLinks returns a list of all 'Activity Pub Link' instances in the system.
	ListActivityPubLinks() IActivityPubLinkCollection
	// ForEachActivityPubLink loops over all 'Activity Pub Link' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubLink(iterator ActivityPubLinkIterator)
	// FilterActivityPubLinks returns a filtered list of 'Activity Pub Link' instances based
	// on the provided predicate.
	FilterActivityPubLinks(predicate ActivityPubLinkFilterPredicate) IActivityPubLinkCollection
	// MapActivityPubLinks loops over all 'Activity Pub Link' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubLinks(predicate ActivityPubLinkMapPredicate) IActivityPubLinkCollection
	// GetActivityPubLink finds a specific 'Activity Pub Link' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubLink(id int64) IActivityPubLink
	// AddActivityPubLink creates a new 'Activity Pub Link' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubLink() IActivityPubLink
	// AddActivityPubLinkWithCustomId creates a new 'Activity Pub Link' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubLinkWithCustomId(id int64) IActivityPubLink
	// LogActivityPubLink creates a new 'Activity Pub Link' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubLink(source string, payload string)
	// UpdateActivityPubLink finds the 'Activity Pub Link' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubLink(id int64) IActivityPubLink
	// UpdateActivityPubLinkObject finds and updates the 'Activity Pub Link' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubLinkObject(object IObject, activityPubLink IActivityPubLink) IActivityPubLink
	// AddOrUpdateActivityPubLinkObject tries to find the 'Activity Pub Link' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubLinkObject(object IObject, activityPubLink IActivityPubLink) IActivityPubLink
	// RemoveActivityPubLink finds the 'Activity Pub Link' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubLink(id int64) IActivityPubLink

	// ActivityPubMediaExists checks whether a specific 'Activity Pub Media' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubMediaExists(id int64) bool
	// ActivityPubMediaExistsWhich checks whether a specific 'Activity Pub Media' exists in the system
	// which satisfies the provided condition.
	ActivityPubMediaExistsWhich(condition ActivityPubMediaCondition) bool
	// ListActivityPubMedias returns a list of all 'Activity Pub Media' instances in the system.
	ListActivityPubMedias() IActivityPubMediaCollection
	// ForEachActivityPubMedia loops over all 'Activity Pub Media' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubMedia(iterator ActivityPubMediaIterator)
	// FilterActivityPubMedias returns a filtered list of 'Activity Pub Media' instances based
	// on the provided predicate.
	FilterActivityPubMedias(predicate ActivityPubMediaFilterPredicate) IActivityPubMediaCollection
	// MapActivityPubMedias loops over all 'Activity Pub Media' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubMedias(predicate ActivityPubMediaMapPredicate) IActivityPubMediaCollection
	// GetActivityPubMedia finds a specific 'Activity Pub Media' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubMedia(id int64) IActivityPubMedia
	// AddActivityPubMedia creates a new 'Activity Pub Media' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubMedia() IActivityPubMedia
	// AddActivityPubMediaWithCustomId creates a new 'Activity Pub Media' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubMediaWithCustomId(id int64) IActivityPubMedia
	// LogActivityPubMedia creates a new 'Activity Pub Media' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubMedia(source string, payload string)
	// UpdateActivityPubMedia finds the 'Activity Pub Media' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubMedia(id int64) IActivityPubMedia
	// UpdateActivityPubMediaObject finds and updates the 'Activity Pub Media' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubMediaObject(object IObject, activityPubMedia IActivityPubMedia) IActivityPubMedia
	// AddOrUpdateActivityPubMediaObject tries to find the 'Activity Pub Media' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubMediaObject(object IObject, activityPubMedia IActivityPubMedia) IActivityPubMedia
	// RemoveActivityPubMedia finds the 'Activity Pub Media' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubMedia(id int64) IActivityPubMedia

	// ActivityPubIncomingActivityExists checks whether a specific 'Activity Pub Incoming Activity' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubIncomingActivityExists(id int64) bool
	// ActivityPubIncomingActivityExistsWhich checks whether a specific 'Activity Pub Incoming Activity' exists in the system
	// which satisfies the provided condition.
	ActivityPubIncomingActivityExistsWhich(condition ActivityPubIncomingActivityCondition) bool
	// ListActivityPubIncomingActivities returns a list of all 'Activity Pub Incoming Activity' instances in the system.
	ListActivityPubIncomingActivities() IActivityPubIncomingActivityCollection
	// ForEachActivityPubIncomingActivity loops over all 'Activity Pub Incoming Activity' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubIncomingActivity(iterator ActivityPubIncomingActivityIterator)
	// FilterActivityPubIncomingActivities returns a filtered list of 'Activity Pub Incoming Activity' instances based
	// on the provided predicate.
	FilterActivityPubIncomingActivities(predicate ActivityPubIncomingActivityFilterPredicate) IActivityPubIncomingActivityCollection
	// MapActivityPubIncomingActivities loops over all 'Activity Pub Incoming Activity' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubIncomingActivities(predicate ActivityPubIncomingActivityMapPredicate) IActivityPubIncomingActivityCollection
	// GetActivityPubIncomingActivity finds a specific 'Activity Pub Incoming Activity' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubIncomingActivity(id int64) IActivityPubIncomingActivity
	// AddActivityPubIncomingActivity creates a new 'Activity Pub Incoming Activity' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubIncomingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) IActivityPubIncomingActivity
	// AddActivityPubIncomingActivityWithCustomId creates a new 'Activity Pub Incoming Activity' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubIncomingActivityWithCustomId(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) IActivityPubIncomingActivity
	// LogActivityPubIncomingActivity creates a new 'Activity Pub Incoming Activity' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubIncomingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, source string, payload string)
	// UpdateActivityPubIncomingActivity finds the 'Activity Pub Incoming Activity' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubIncomingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) IActivityPubIncomingActivity
	// UpdateActivityPubIncomingActivityObject finds and updates the 'Activity Pub Incoming Activity' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubIncomingActivityObject(object IObject, activityPubIncomingActivity IActivityPubIncomingActivity) IActivityPubIncomingActivity
	// AddOrUpdateActivityPubIncomingActivityObject tries to find the 'Activity Pub Incoming Activity' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubIncomingActivityObject(object IObject, activityPubIncomingActivity IActivityPubIncomingActivity) IActivityPubIncomingActivity
	// RemoveActivityPubIncomingActivity finds the 'Activity Pub Incoming Activity' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubIncomingActivity(id int64) IActivityPubIncomingActivity
	// ListActivityPubIncomingActivitiesByIdentity returns a list of all 'Activity Pub Incoming Activity' instances in the system
	// that are children of the provided 'Identity' instance.
	ListActivityPubIncomingActivitiesByIdentity(identity IIdentity) IActivityPubIncomingActivityCollection
	// ListActivityPubIncomingActivitiesByIdentityId returns a list of all 'Activity Pub Incoming Activity' instances in the system that are
	// children of the 'Identity' instance with the provided unique identifier.
	ListActivityPubIncomingActivitiesByIdentityId(identityId int64) IActivityPubIncomingActivityCollection
	// ForEachActivityPubIncomingActivityByIdentity loops over all 'Activity Pub Incoming Activity' instances in the system that are children
	// of the provided 'Identity' instance, running the provided iterator for each of them.
	ForEachActivityPubIncomingActivityByIdentity(identity IIdentity, iterator ActivityPubIncomingActivityIterator)
	// ForEachActivityPubIncomingActivityByIdentityId loops over all 'Activity Pub Incoming Activity' instances in the system that are children
	// of the 'Identity' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachActivityPubIncomingActivityByIdentityId(identityId int64, iterator ActivityPubIncomingActivityIterator)

	// ActivityPubOutgoingActivityExists checks whether a specific 'Activity Pub Outgoing Activity' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubOutgoingActivityExists(id int64) bool
	// ActivityPubOutgoingActivityExistsWhich checks whether a specific 'Activity Pub Outgoing Activity' exists in the system
	// which satisfies the provided condition.
	ActivityPubOutgoingActivityExistsWhich(condition ActivityPubOutgoingActivityCondition) bool
	// ListActivityPubOutgoingActivities returns a list of all 'Activity Pub Outgoing Activity' instances in the system.
	ListActivityPubOutgoingActivities() IActivityPubOutgoingActivityCollection
	// ForEachActivityPubOutgoingActivity loops over all 'Activity Pub Outgoing Activity' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubOutgoingActivity(iterator ActivityPubOutgoingActivityIterator)
	// FilterActivityPubOutgoingActivities returns a filtered list of 'Activity Pub Outgoing Activity' instances based
	// on the provided predicate.
	FilterActivityPubOutgoingActivities(predicate ActivityPubOutgoingActivityFilterPredicate) IActivityPubOutgoingActivityCollection
	// MapActivityPubOutgoingActivities loops over all 'Activity Pub Outgoing Activity' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubOutgoingActivities(predicate ActivityPubOutgoingActivityMapPredicate) IActivityPubOutgoingActivityCollection
	// GetActivityPubOutgoingActivity finds a specific 'Activity Pub Outgoing Activity' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubOutgoingActivity(id int64) IActivityPubOutgoingActivity
	// AddActivityPubOutgoingActivity creates a new 'Activity Pub Outgoing Activity' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubOutgoingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) IActivityPubOutgoingActivity
	// AddActivityPubOutgoingActivityWithCustomId creates a new 'Activity Pub Outgoing Activity' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubOutgoingActivityWithCustomId(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) IActivityPubOutgoingActivity
	// LogActivityPubOutgoingActivity creates a new 'Activity Pub Outgoing Activity' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubOutgoingActivity(identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string, source string, payload string)
	// UpdateActivityPubOutgoingActivity finds the 'Activity Pub Outgoing Activity' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubOutgoingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) IActivityPubOutgoingActivity
	// UpdateActivityPubOutgoingActivityObject finds and updates the 'Activity Pub Outgoing Activity' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubOutgoingActivityObject(object IObject, activityPubOutgoingActivity IActivityPubOutgoingActivity) IActivityPubOutgoingActivity
	// AddOrUpdateActivityPubOutgoingActivityObject tries to find the 'Activity Pub Outgoing Activity' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubOutgoingActivityObject(object IObject, activityPubOutgoingActivity IActivityPubOutgoingActivity) IActivityPubOutgoingActivity
	// RemoveActivityPubOutgoingActivity finds the 'Activity Pub Outgoing Activity' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubOutgoingActivity(id int64) IActivityPubOutgoingActivity
	// ListActivityPubOutgoingActivitiesByIdentity returns a list of all 'Activity Pub Outgoing Activity' instances in the system
	// that are children of the provided 'Identity' instance.
	ListActivityPubOutgoingActivitiesByIdentity(identity IIdentity) IActivityPubOutgoingActivityCollection
	// ListActivityPubOutgoingActivitiesByIdentityId returns a list of all 'Activity Pub Outgoing Activity' instances in the system that are
	// children of the 'Identity' instance with the provided unique identifier.
	ListActivityPubOutgoingActivitiesByIdentityId(identityId int64) IActivityPubOutgoingActivityCollection
	// ForEachActivityPubOutgoingActivityByIdentity loops over all 'Activity Pub Outgoing Activity' instances in the system that are children
	// of the provided 'Identity' instance, running the provided iterator for each of them.
	ForEachActivityPubOutgoingActivityByIdentity(identity IIdentity, iterator ActivityPubOutgoingActivityIterator)
	// ForEachActivityPubOutgoingActivityByIdentityId loops over all 'Activity Pub Outgoing Activity' instances in the system that are children
	// of the 'Identity' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachActivityPubOutgoingActivityByIdentityId(identityId int64, iterator ActivityPubOutgoingActivityIterator)

	// ActivityPubFollowerExists checks whether a specific 'Activity Pub Follower' with the provided
	// unique identifier or 'Id' exists in the system.
	ActivityPubFollowerExists(id int64) bool
	// ActivityPubFollowerExistsWhich checks whether a specific 'Activity Pub Follower' exists in the system
	// which satisfies the provided condition.
	ActivityPubFollowerExistsWhich(condition ActivityPubFollowerCondition) bool
	// ListActivityPubFollowers returns a list of all 'Activity Pub Follower' instances in the system.
	ListActivityPubFollowers() IActivityPubFollowerCollection
	// ForEachActivityPubFollower loops over all 'Activity Pub Follower' instances in the system running
	// the provided iterator for each of them.
	ForEachActivityPubFollower(iterator ActivityPubFollowerIterator)
	// FilterActivityPubFollowers returns a filtered list of 'Activity Pub Follower' instances based
	// on the provided predicate.
	FilterActivityPubFollowers(predicate ActivityPubFollowerFilterPredicate) IActivityPubFollowerCollection
	// MapActivityPubFollowers loops over all 'Activity Pub Follower' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapActivityPubFollowers(predicate ActivityPubFollowerMapPredicate) IActivityPubFollowerCollection
	// GetActivityPubFollower finds a specific 'Activity Pub Follower' instance using
	// the provided unique identifier or 'Id'.
	GetActivityPubFollower(id int64) IActivityPubFollower
	// AddActivityPubFollower creates a new 'Activity Pub Follower' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubFollower(handle string, inbox string, subject string, activity string, accepted bool) IActivityPubFollower
	// AddActivityPubFollowerWithCustomId creates a new 'Activity Pub Follower' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddActivityPubFollowerWithCustomId(id int64, handle string, inbox string, subject string, activity string, accepted bool) IActivityPubFollower
	// LogActivityPubFollower creates a new 'Activity Pub Follower' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogActivityPubFollower(handle string, inbox string, subject string, activity string, accepted bool, source string, payload string)
	// UpdateActivityPubFollower finds the 'Activity Pub Follower' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateActivityPubFollower(id int64, handle string, inbox string, subject string, activity string, accepted bool) IActivityPubFollower
	// UpdateActivityPubFollowerObject finds and updates the 'Activity Pub Follower' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateActivityPubFollowerObject(object IObject, activityPubFollower IActivityPubFollower) IActivityPubFollower
	// AddOrUpdateActivityPubFollowerObject tries to find the 'Activity Pub Follower' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateActivityPubFollowerObject(object IObject, activityPubFollower IActivityPubFollower) IActivityPubFollower
	// RemoveActivityPubFollower finds the 'Activity Pub Follower' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveActivityPubFollower(id int64) IActivityPubFollower

	// SpiExists checks whether a specific 'Spi' with the provided
	// unique identifier or 'Id' exists in the system.
	SpiExists(id int64) bool
	// SpiExistsWhich checks whether a specific 'Spi' exists in the system
	// which satisfies the provided condition.
	SpiExistsWhich(condition SpiCondition) bool
	// ListSpis returns a list of all 'Spi' instances in the system.
	ListSpis() ISpiCollection
	// ForEachSpi loops over all 'Spi' instances in the system running
	// the provided iterator for each of them.
	ForEachSpi(iterator SpiIterator)
	// FilterSpis returns a filtered list of 'Spi' instances based
	// on the provided predicate.
	FilterSpis(predicate SpiFilterPredicate) ISpiCollection
	// MapSpis loops over all 'Spi' instances in the system and
	// returns a transformed list based on the provided predicate.
	MapSpis(predicate SpiMapPredicate) ISpiCollection
	// GetSpi finds a specific 'Spi' instance using
	// the provided unique identifier or 'Id'.
	GetSpi(id int64) ISpi
	// AddSpi creates a new 'Spi' instance with an auto-generated unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddSpi() ISpi
	// AddSpiWithCustomId creates a new 'Spi' instance with a custom unique identifier using the
	// provided property values and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is synchronous.
	AddSpiWithCustomId(id int64) ISpi
	// LogSpi creates a new 'Spi' instance using the provided property values
	// and adds it to persistent data store and system cache.
	// The method is smart enough to respect the transaction if used in an
	// x.Atomic context. This method is asynchronous.
	LogSpi(source string, payload string)
	// UpdateSpi finds the 'Spi' instance using the provided unique identifier and updates it using
	// the provided property values and reflects the changes to persistent data store and system
	// cache. The method is smart enough to respect the transaction if used in an x.Atomic context.
	// This method is synchronous.
	UpdateSpi(id int64) ISpi
	// UpdateSpiObject finds and updates the 'Spi' using the provided instance and reflects the
	// changes to persistent data store and system cache. The method is smart enough to
	// respect the transaction if used in an x.Atomic context. This method is synchronous.
	UpdateSpiObject(object IObject, spi ISpi) ISpi
	// AddOrUpdateSpiObject tries to find the 'Spi' using the provided instance, then updates it in persistent
	// data store and system cache or creates it if doesn't already exist. The method is smart enough
	// to respect the transaction if used in an x.Atomic context. This method is synchronous.
	AddOrUpdateSpiObject(object IObject, spi ISpi) ISpi
	// RemoveSpi finds the 'Spi' instance using the provided unique identifier and
	// removes it from the system cache. The method is smart enough to respect
	// the transaction if used in an x.Atomic context. This method is synchronous.
	RemoveSpi(id int64) ISpi
	Echo(document IDocument) (IEchoResult, error)
	GetServerConfiguration() (IGetServerConfigurationResult, error)
	CheckUsernameAvailability(username string) (ICheckUsernameAvailabilityResult, error)
	Signup(username string, email string, password string) (ISignupResult, error)
	ResendVerificationCode(email string) (IResendVerificationCodeResult, error)
	Verify(email string, token string, code string) (IVerifyResult, error)
	Login(email string, password string) (ILoginResult, error)
	GetProfileByUser() (IGetProfileByUserResult, error)
	UpdateProfileByUser(displayName string, avatar string, banner string, summary string, github string) (IUpdateProfileByUserResult, error)
	ChangePassword(currentPassword string, newPassword string) (IChangePasswordResult, error)
	ResetPassword(usernameOrEmail string) (IResetPasswordResult, error)
	Logout() (ILogoutResult, error)
	Webfinger(resource string) (IWebfingerResult, error)
	GetPackages() (IGetPackagesResult, error)
	GetActor(username string) (IGetActorResult, error)
	FollowActor(username string, account string) (IFollowActorResult, error)
	AuthorizeInteraction(uri string) (IAuthorizeInteractionResult, error)
	GetFollowers(username string) (IGetFollowersResult, error)
	GetFollowing(username string) (IGetFollowingResult, error)
	PostToOutbox(username string, body []byte) (IPostToOutboxResult, error)
	GetOutbox(username string) (IGetOutboxResult, error)
	PostToInbox(username string, body []byte) (IPostToInboxResult, error)
	GetInbox(username string) (IGetInboxResult, error)

	// NewDocument creates a new 'Document' instance using the provided property values.
	NewDocument(id int64, content string) (IDocument, error)
	// NewDocuments creates an empty in-memory 'Document' collection which is not thread-safe.
	NewDocuments() IDocumentCollection
	// NewSystemSchedule creates a new 'System Schedule' instance using the provided property values.
	NewSystemSchedule(id int64, enabled bool, config string) (ISystemSchedule, error)
	// NewSystemSchedules creates an empty in-memory 'System Schedule' collection which is not thread-safe.
	NewSystemSchedules() ISystemScheduleCollection
	// NewIdentity creates a new 'Identity' instance using the provided property values.
	NewIdentity(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32) (IIdentity, error)
	// NewIdentities creates an empty in-memory 'Identity' collection which is not thread-safe.
	NewIdentities() IIdentityCollection
	// NewAccessControl creates a new 'Access Control' instance using the provided property values.
	NewAccessControl(id int64, key uint64, value uint64) (IAccessControl, error)
	// NewAccessControls creates an empty in-memory 'Access Control' collection which is not thread-safe.
	NewAccessControls() IAccessControlCollection
	// NewRemoteActivity creates a new 'Remote Activity' instance using the provided property values.
	NewRemoteActivity(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64) (IRemoteActivity, error)
	// NewRemoteActivities creates an empty in-memory 'Remote Activity' collection which is not thread-safe.
	NewRemoteActivities() IRemoteActivityCollection
	// NewCategoryType creates a new 'Category Type' instance using the provided property values.
	NewCategoryType(id int64, description string) (ICategoryType, error)
	// NewCategoryTypes creates an empty in-memory 'Category Type' collection which is not thread-safe.
	NewCategoryTypes() ICategoryTypeCollection
	// NewCategory creates a new 'Category' instance using the provided property values.
	NewCategory(id int64, categoryTypeId int64, categoryId int64, title string, description string) (ICategory, error)
	// NewCategories creates an empty in-memory 'Category' collection which is not thread-safe.
	NewCategories() ICategoryCollection
	// NewUser creates a new 'User' instance using the provided property values.
	NewUser(id int64, github string) (IUser, error)
	// NewUsers creates an empty in-memory 'User' collection which is not thread-safe.
	NewUsers() IUserCollection
	// NewActivityPubObject creates a new 'Activity Pub Object' instance using the provided property values.
	NewActivityPubObject() (IActivityPubObject, error)
	// NewActivityPubObjects creates an empty in-memory 'Activity Pub Object' collection which is not thread-safe.
	NewActivityPubObjects() IActivityPubObjectCollection
	// NewActivityPubActivity creates a new 'Activity Pub Activity' instance using the provided property values.
	NewActivityPubActivity() (IActivityPubActivity, error)
	// NewActivityPubActivities creates an empty in-memory 'Activity Pub Activity' collection which is not thread-safe.
	NewActivityPubActivities() IActivityPubActivityCollection
	// NewActivityPubPublicKey creates a new 'Activity Pub Public Key' instance using the provided property values.
	NewActivityPubPublicKey() (IActivityPubPublicKey, error)
	// NewActivityPubPublicKeys creates an empty in-memory 'Activity Pub Public Key' collection which is not thread-safe.
	NewActivityPubPublicKeys() IActivityPubPublicKeyCollection
	// NewActivityPubLink creates a new 'Activity Pub Link' instance using the provided property values.
	NewActivityPubLink() (IActivityPubLink, error)
	// NewActivityPubLinks creates an empty in-memory 'Activity Pub Link' collection which is not thread-safe.
	NewActivityPubLinks() IActivityPubLinkCollection
	// NewActivityPubMedia creates a new 'Activity Pub Media' instance using the provided property values.
	NewActivityPubMedia() (IActivityPubMedia, error)
	// NewActivityPubMedias creates an empty in-memory 'Activity Pub Media' collection which is not thread-safe.
	NewActivityPubMedias() IActivityPubMediaCollection
	// NewActivityPubIncomingActivity creates a new 'Activity Pub Incoming Activity' instance using the provided property values.
	NewActivityPubIncomingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) (IActivityPubIncomingActivity, error)
	// NewActivityPubIncomingActivities creates an empty in-memory 'Activity Pub Incoming Activity' collection which is not thread-safe.
	NewActivityPubIncomingActivities() IActivityPubIncomingActivityCollection
	// NewActivityPubOutgoingActivity creates a new 'Activity Pub Outgoing Activity' instance using the provided property values.
	NewActivityPubOutgoingActivity(id int64, identityId int64, uniqueIdentifier string, timestamp int64, from string, to string, content string, raw string) (IActivityPubOutgoingActivity, error)
	// NewActivityPubOutgoingActivities creates an empty in-memory 'Activity Pub Outgoing Activity' collection which is not thread-safe.
	NewActivityPubOutgoingActivities() IActivityPubOutgoingActivityCollection
	// NewActivityPubFollower creates a new 'Activity Pub Follower' instance using the provided property values.
	NewActivityPubFollower(id int64, handle string, inbox string, subject string, activity string, accepted bool) (IActivityPubFollower, error)
	// NewActivityPubFollowers creates an empty in-memory 'Activity Pub Follower' collection which is not thread-safe.
	NewActivityPubFollowers() IActivityPubFollowerCollection
	// NewSpi creates a new 'Spi' instance using the provided property values.
	NewSpi() (ISpi, error)
	// NewSpis creates an empty in-memory 'Spi' collection which is not thread-safe.
	NewSpis() ISpiCollection
	// NewEchoResult creates a new result container for 'Echo' system action.
	NewEchoResult(document IDocument) IEchoResult
	// NewGetServerConfigurationResult creates a new result container for 'Get Server Configuration' system action.
	NewGetServerConfigurationResult(product string, environment string, fqdn string) IGetServerConfigurationResult
	// NewCheckUsernameAvailabilityResult creates a new result container for 'Check Username Availability' system action.
	NewCheckUsernameAvailabilityResult(isAvailable bool) ICheckUsernameAvailabilityResult
	// NewSignupResult creates a new result container for 'Signup' system action.
	NewSignupResult(token string, code string) ISignupResult
	// NewResendVerificationCodeResult creates a new result container for 'Resend Verification Code' system action.
	NewResendVerificationCodeResult(code string) IResendVerificationCodeResult
	// NewVerifyResult creates a new result container for 'Verify' system action.
	NewVerifyResult(token string) IVerifyResult
	// NewLoginResult creates a new result container for 'Login' system action.
	NewLoginResult(username string, token string) ILoginResult
	// NewGetProfileByUserResult creates a new result container for 'Get Profile By User' system action.
	NewGetProfileByUserResult(username string, displayName string, avatar string, banner string, summary string, github string) IGetProfileByUserResult
	// NewUpdateProfileByUserResult creates a new result container for 'Update Profile By User' system action.
	NewUpdateProfileByUserResult(displayName string, avatar string, banner string, summary string, github string) IUpdateProfileByUserResult
	// NewChangePasswordResult creates a new result container for 'Change Password' system action.
	NewChangePasswordResult() IChangePasswordResult
	// NewResetPasswordResult creates a new result container for 'Reset Password' system action.
	NewResetPasswordResult() IResetPasswordResult
	// NewLogoutResult creates a new result container for 'Logout' system action.
	NewLogoutResult() ILogoutResult
	// NewWebfingerResult creates a new result container for 'Webfinger' system action.
	NewWebfingerResult(aliases []string, links []IActivityPubLink, subject string) IWebfingerResult
	// NewGetPackagesResult creates a new result container for 'Get Packages' system action.
	NewGetPackagesResult(body []byte) IGetPackagesResult
	// NewGetActorResult creates a new result container for 'Get Actor' system action.
	NewGetActorResult(context []string, id string, followers string, following string, inbox string, outbox string, name string, preferredUsername string, type_ string, url string, icon IActivityPubMedia, image IActivityPubMedia, publicKey IActivityPubPublicKey, summary string, published string) IGetActorResult
	// NewFollowActorResult creates a new result container for 'Follow Actor' system action.
	NewFollowActorResult() IFollowActorResult
	// NewAuthorizeInteractionResult creates a new result container for 'Authorize Interaction' system action.
	NewAuthorizeInteractionResult(uri string, success bool) IAuthorizeInteractionResult
	// NewGetFollowersResult creates a new result container for 'Get Followers' system action.
	NewGetFollowersResult(context string, id string, type_ string, totalItems int32, orderedItems []string, first string) IGetFollowersResult
	// NewGetFollowingResult creates a new result container for 'Get Following' system action.
	NewGetFollowingResult(context string, id string, type_ string, totalItems int32, orderedItems []string, first string) IGetFollowingResult
	// NewPostToOutboxResult creates a new result container for 'Post To Outbox' system action.
	NewPostToOutboxResult(body []byte) IPostToOutboxResult
	// NewGetOutboxResult creates a new result container for 'Get Outbox' system action.
	NewGetOutboxResult(context string, id string, type_ string, totalItems int32, orderedItems []IActivityPubActivity, first string) IGetOutboxResult
	// NewPostToInboxResult creates a new result container for 'Post To Inbox' system action.
	NewPostToInboxResult(body []byte) IPostToInboxResult
	// NewGetInboxResult creates a new result container for 'Get Inbox' system action.
	NewGetInboxResult(context string, id string, type_ string, totalItems int32, orderedItems []IActivityPubActivity, first string) IGetInboxResult
	// Assert asserts the provided condition and panics if the assertion is not valid.
	Assert(condition bool) IAssertionResult
	// AssertNoError panics if the provided error is not nil.
	AssertNoError(error)
	// Ensure panics if any of the provided errors is not nil.
	Ensure(...error)
	// AssertNull panics if the provided interfaces is not nil.
	AssertNull(interface{}) IAssertionResult
	// AssertNotNull panics if the provided interfaces is nil.
	AssertNotNull(interface{}) IAssertionResult
	// AssertEmpty panic if the provided string is not empty. Trims the spaces in the string first.
	AssertEmpty(input string) IAssertionResult
	// AssertNotEmpty panic if the provided string is empty. Trims the spaces in the string first.
	AssertNotEmpty(input string) IAssertionResult
	// Format provides a wrapper around fmt.Sprintf
	Format(format string, args ...interface{}) string
	// ReplaceAll returns a copy of the input string with all
	// non-overlapping instances of old replaced by new.
	// If old is empty, it matches at the beginning of the string
	// and after each UTF-8 sequence, yielding up to k+1 replacements
	// for a k-rune string.
	ReplaceAll(input, old, new string) string
	// Sort sorts the provided slice using the provided comparator function.
	Sort(slice interface{}, less func(x, y int) bool)
	// Search searches the input for any or all of the words in criteria.
	Search(input, criteria string) bool
	// Email sends an email message asynchronously.
	Email(destination string, format string, args ...interface{})
	// SMS sends an sms message asynchronously.
	SMS(destination string, format string, args ...interface{})
	// GenerateTrackingNumber returns a new random tracking number between 100000 and 999999.
	GenerateTrackingNumber() uint32
	// GenerateUUID returns a new universal unique identifier.
	GenerateUUID() string
	// GenerateSalt returns a random salt string.
	GenerateSalt() string
	// GenerateHash returns a new hash from a string value and a salt.
	GenerateHash(value string, salt string) string
	// GenerateJwtToken returns a new jwt token.
	GenerateJwtToken() string
	// VerifyJwtToken verifies jwt token.
	VerifyJwtToken(token string) error
	// GenerateCode returns a random string code.
	GenerateCode() string
	// GenerateRSAKeyPair returns a new pair of public and private keys.
	GenerateRSAKeyPair() (string, string, error)
	// UnixNano returns the number of nanoseconds elapsed
	// since January 1, 1970 UTC. The result is undefined if the Unix time
	// in nanoseconds cannot be represented by an int64 (a date before the year
	// 1678 or after 2262). The result does not depend on the location
	UnixNano() int64
	// Trim trims the spaces in the input string
	Trim(input string) string
	// Contains reports whether substr is within s.
	Contains(input, substr string) bool
	// ToUpper returns input with all Unicode letters mapped to their upper case.
	ToUpper(input string) string
	// MatchString reports whether the string input
	// contains any match of the regular expression pattern.
	// More complicated queries need to use Compile and the full Regexp interface.
	MatchString(pattern string, input string) bool
	// IsEmpty checks whether the provided string is empty. Trims the spaces in the string first.
	IsEmpty(input string) bool
	// IsNotEmpty checks whether the provided string is not empty. Trims the spaces in the string first.
	IsNotEmpty(input string) bool
	// IsSet returns true if the provided int64 is not zero.
	IsSet(id int64) bool
	// Join concatenates the elements of its first argument to create a single string. The separator
	// string is placed between elements in the resulting string.
	Join(elements []string, separator string) string
	// MarshalJson returns the JSON representation of input and panics in case of an error.
	MarshalJson(input any) string
	// UnmarshalJson parses the JSON-encoded data and stores the result in the
	// value pointed to by output. If output is nil or not a pointer, it panics.
	UnmarshalJson(data []byte, output any)
	// DecodeMapStructure takes an input structure and uses reflection to
	// translate it to the output structure. output must be a pointer to a
	// map or struct. It panics in case of an error.
	DecodeMapStructure(input, output interface{})

	IsTestEnvironment() bool
	IsDevelopmentEnvironment() bool
	IsStagingEnvironment() bool
	IsProductionEnvironment() bool

	GetActorId(Identity) string
	GetPublicKeyId(Identity) string
	GetActivityStream(url string, output interface{}) error
	PostActivityStream(url string, input interface{}) error
	GetSignedActivityStream(url string, output interface{}, identity Identity) error
	PostSignedActivityStream(url string, input interface{}, identity Identity) error
	UnmarshalActivityPubObjectOrLink([]byte) activitypub.ObjectOrLink
	UnmarshalActivityPubNote([]byte) *activitypub.Note

	ResolveWebfinger(account string) (IWebfinger, error)
}

type IDispatcherCache

type IDispatcherCache interface {

	// Returns a list of all 'Category' instances in the system
	// that are children of the provided 'Category Type' instance.
	ListCategoriesByCategoryType(categoryType ICategoryType) ICategoryCollection
	// Returns a list of all 'Category' instances in the system that are
	// children of the 'Category Type' instance with the provided unique identifier.
	ListCategoriesByCategoryTypeId(categoryTypeId int64) ICategoryCollection
	// Loops over all 'Category' instances in the system that are children
	// of the provided 'Category Type' instance, running the provided iterator for each of them.
	ForEachCategoryByCategoryType(categoryType ICategoryType, iterator CategoryIterator)
	// Loops over all 'Category' instances in the system that are children
	// of the 'Category Type' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachCategoryByCategoryTypeId(categoryTypeId int64, iterator CategoryIterator)
	// Returns a list of all 'Category' instances in the system
	// that are children of the provided 'Category' instance.
	ListCategoriesByCategory(category ICategory) ICategoryCollection
	// Returns a list of all 'Category' instances in the system that are
	// children of the 'Category' instance with the provided unique identifier.
	ListCategoriesByCategoryId(categoryId int64) ICategoryCollection
	// Loops over all 'Category' instances in the system that are children
	// of the provided 'Category' instance, running the provided iterator for each of them.
	ForEachCategoryByCategory(category ICategory, iterator CategoryIterator)
	// Loops over all 'Category' instances in the system that are children
	// of the 'Category' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachCategoryByCategoryId(categoryId int64, iterator CategoryIterator)

	// Returns a list of all 'Activity Pub Incoming Activity' instances in the system
	// that are children of the provided 'Identity' instance.
	ListActivityPubIncomingActivitiesByIdentity(identity IIdentity) IActivityPubIncomingActivityCollection
	// Returns a list of all 'Activity Pub Incoming Activity' instances in the system that are
	// children of the 'Identity' instance with the provided unique identifier.
	ListActivityPubIncomingActivitiesByIdentityId(identityId int64) IActivityPubIncomingActivityCollection
	// Loops over all 'Activity Pub Incoming Activity' instances in the system that are children
	// of the provided 'Identity' instance, running the provided iterator for each of them.
	ForEachActivityPubIncomingActivityByIdentity(identity IIdentity, iterator ActivityPubIncomingActivityIterator)
	// Loops over all 'Activity Pub Incoming Activity' instances in the system that are children
	// of the 'Identity' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachActivityPubIncomingActivityByIdentityId(identityId int64, iterator ActivityPubIncomingActivityIterator)

	// Returns a list of all 'Activity Pub Outgoing Activity' instances in the system
	// that are children of the provided 'Identity' instance.
	ListActivityPubOutgoingActivitiesByIdentity(identity IIdentity) IActivityPubOutgoingActivityCollection
	// Returns a list of all 'Activity Pub Outgoing Activity' instances in the system that are
	// children of the 'Identity' instance with the provided unique identifier.
	ListActivityPubOutgoingActivitiesByIdentityId(identityId int64) IActivityPubOutgoingActivityCollection
	// Loops over all 'Activity Pub Outgoing Activity' instances in the system that are children
	// of the provided 'Identity' instance, running the provided iterator for each of them.
	ForEachActivityPubOutgoingActivityByIdentity(identity IIdentity, iterator ActivityPubOutgoingActivityIterator)
	// Loops over all 'Activity Pub Outgoing Activity' instances in the system that are children
	// of the 'Identity' instance with the provided unique identifier,
	// running the provided iterator for each of them.
	ForEachActivityPubOutgoingActivityByIdentityId(identityId int64, iterator ActivityPubOutgoingActivityIterator)
}

type IDocument

type IDocument interface {
	IObject
	// Content returns 'Content' of this 'Document' instance.
	Content() string
	// UpdateContent directly updates 'Content' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateContent(content string, editor Identity)
	// UpdateContentAtomic updates 'Content' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateContentAtomic(transaction ITransaction, content string, editor Identity)
}

type IDocumentCollection

type IDocumentCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IDocument
	Append(document IDocument)
	ForEach(DocumentIterator)
	Reverse() IDocumentCollection
	Array() Documents
}

type IDocumentManager

type IDocumentManager interface {
	ISystemComponent
	OnCacheChanged(DocumentCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition DocumentCondition) bool
	ListDocuments(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IDocumentCollection
	GetDocument(id int64, editor Identity) (IDocument, error)
	AddDocument(content string, editor Identity) (IDocument, error)
	AddDocumentWithCustomId(id int64, content string, editor Identity) (IDocument, error)
	AddDocumentObject(document IDocument, editor Identity) (IDocument, error)
	AddDocumentAtomic(transaction ITransaction, content string, editor Identity) (IDocument, error)
	AddDocumentWithCustomIdAtomic(id int64, transaction ITransaction, content string, editor Identity) (IDocument, error)
	AddDocumentObjectAtomic(transaction ITransaction, document IDocument, editor Identity) (IDocument, error)
	Log(content string, source string, editor Identity, payload string)
	UpdateDocument(id int64, content string, editor Identity) (IDocument, error)
	UpdateDocumentObject(id int64, document IDocument, editor Identity) (IDocument, error)
	UpdateDocumentAtomic(transaction ITransaction, id int64, content string, editor Identity) (IDocument, error)
	UpdateDocumentObjectAtomic(transaction ITransaction, id int64, document IDocument, editor Identity) (IDocument, error)
	AddOrUpdateDocumentObject(id int64, document IDocument, editor Identity) (IDocument, error)
	AddOrUpdateDocumentObjectAtomic(transaction ITransaction, id int64, document IDocument, editor Identity) (IDocument, error)
	RemoveDocument(id int64, editor Identity) (IDocument, error)
	RemoveDocumentAtomic(transaction ITransaction, id int64, editor Identity) (IDocument, error)
	Find(id int64) IDocument
	ForEach(iterator DocumentIterator)
	Filter(predicate DocumentFilterPredicate) IDocumentCollection
	Map(predicate DocumentMapPredicate) IDocumentCollection
}

type IEchoResult

type IEchoResult interface {
	Document() IDocument
}

type IFollowActorResult

type IFollowActorResult interface {
}

type IGetActorResult

type IGetActorResult interface {
	Context() []string
	Id() string
	Followers() string
	Following() string
	Inbox() string
	Outbox() string
	Name() string
	PreferredUsername() string
	Type() string
	Url() string
	Icon() IActivityPubMedia
	Image() IActivityPubMedia
	PublicKey() IActivityPubPublicKey
	Summary() string
	Published() string
}

type IGetFollowersResult

type IGetFollowersResult interface {
	Context() string
	Id() string
	Type() string
	TotalItems() int32
	OrderedItems() []string
	First() string
}

type IGetFollowingResult

type IGetFollowingResult interface {
	Context() string
	Id() string
	Type() string
	TotalItems() int32
	OrderedItems() []string
	First() string
}

type IGetInboxResult

type IGetInboxResult interface {
	Context() string
	Id() string
	Type() string
	TotalItems() int32
	OrderedItems() []IActivityPubActivity
	First() string
}

type IGetOutboxResult

type IGetOutboxResult interface {
	Context() string
	Id() string
	Type() string
	TotalItems() int32
	OrderedItems() []IActivityPubActivity
	First() string
}

type IGetPackagesResult

type IGetPackagesResult interface {
	Body() []byte
}

type IGetProfileByUserResult

type IGetProfileByUserResult interface {
	Username() string
	DisplayName() string
	Avatar() string
	Banner() string
	Summary() string
	Github() string
}

type IGetServerConfigurationResult

type IGetServerConfigurationResult interface {
	Product() string
	Environment() string
	Fqdn() string
}

type IIdentity

type IIdentity interface {
	IObject
	// Username returns 'Username' of this 'Identity' instance.
	Username() string
	// UpdateUsername directly updates 'Username' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateUsername(username string, editor Identity)
	// UpdateUsernameAtomic updates 'Username' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateUsernameAtomic(transaction ITransaction, username string, editor Identity)
	// PhoneNumber returns 'PhoneNumber' of this 'Identity' instance.
	PhoneNumber() string
	// UpdatePhoneNumber directly updates 'PhoneNumber' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdatePhoneNumber(phoneNumber string, editor Identity)
	// UpdatePhoneNumberAtomic updates 'PhoneNumber' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdatePhoneNumberAtomic(transaction ITransaction, phoneNumber string, editor Identity)
	// PhoneNumberConfirmed returns 'PhoneNumberConfirmed' of this 'Identity' instance.
	PhoneNumberConfirmed() bool
	// UpdatePhoneNumberConfirmed directly updates 'PhoneNumberConfirmed' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdatePhoneNumberConfirmed(phoneNumberConfirmed bool, editor Identity)
	// UpdatePhoneNumberConfirmedAtomic updates 'PhoneNumberConfirmed' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdatePhoneNumberConfirmedAtomic(transaction ITransaction, phoneNumberConfirmed bool, editor Identity)
	// FirstName returns 'FirstName' of this 'Identity' instance.
	FirstName() string
	// UpdateFirstName directly updates 'FirstName' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateFirstName(firstName string, editor Identity)
	// UpdateFirstNameAtomic updates 'FirstName' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateFirstNameAtomic(transaction ITransaction, firstName string, editor Identity)
	// LastName returns 'LastName' of this 'Identity' instance.
	LastName() string
	// UpdateLastName directly updates 'LastName' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateLastName(lastName string, editor Identity)
	// UpdateLastNameAtomic updates 'LastName' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateLastNameAtomic(transaction ITransaction, lastName string, editor Identity)
	// DisplayName returns 'DisplayName' of this 'Identity' instance.
	DisplayName() string
	// UpdateDisplayName directly updates 'DisplayName' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateDisplayName(displayName string, editor Identity)
	// UpdateDisplayNameAtomic updates 'DisplayName' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateDisplayNameAtomic(transaction ITransaction, displayName string, editor Identity)
	// Email returns 'Email' of this 'Identity' instance.
	Email() string
	// UpdateEmail directly updates 'Email' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateEmail(email string, editor Identity)
	// UpdateEmailAtomic updates 'Email' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateEmailAtomic(transaction ITransaction, email string, editor Identity)
	// EmailConfirmed returns 'EmailConfirmed' of this 'Identity' instance.
	EmailConfirmed() bool
	// UpdateEmailConfirmed directly updates 'EmailConfirmed' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateEmailConfirmed(emailConfirmed bool, editor Identity)
	// UpdateEmailConfirmedAtomic updates 'EmailConfirmed' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateEmailConfirmedAtomic(transaction ITransaction, emailConfirmed bool, editor Identity)
	// Avatar returns 'Avatar' of this 'Identity' instance.
	Avatar() string
	// UpdateAvatar directly updates 'Avatar' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateAvatar(avatar string, editor Identity)
	// UpdateAvatarAtomic updates 'Avatar' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateAvatarAtomic(transaction ITransaction, avatar string, editor Identity)
	// Banner returns 'Banner' of this 'Identity' instance.
	Banner() string
	// UpdateBanner directly updates 'Banner' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateBanner(banner string, editor Identity)
	// UpdateBannerAtomic updates 'Banner' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateBannerAtomic(transaction ITransaction, banner string, editor Identity)
	// Summary returns 'Summary' of this 'Identity' instance.
	Summary() string
	// UpdateSummary directly updates 'Summary' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateSummary(summary string, editor Identity)
	// UpdateSummaryAtomic updates 'Summary' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateSummaryAtomic(transaction ITransaction, summary string, editor Identity)
	// Token returns 'Token' of this 'Identity' instance.
	Token() string
	// UpdateToken directly updates 'Token' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateToken(token string, editor Identity)
	// UpdateTokenAtomic updates 'Token' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateTokenAtomic(transaction ITransaction, token string, editor Identity)
	// MultiFactor returns 'MultiFactor' of this 'Identity' instance.
	MultiFactor() bool
	// UpdateMultiFactor directly updates 'MultiFactor' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateMultiFactor(multiFactor bool, editor Identity)
	// UpdateMultiFactorAtomic updates 'MultiFactor' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateMultiFactorAtomic(transaction ITransaction, multiFactor bool, editor Identity)
	// Hash returns 'Hash' of this 'Identity' instance.
	Hash() string
	// UpdateHash directly updates 'Hash' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateHash(hash string, editor Identity)
	// UpdateHashAtomic updates 'Hash' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateHashAtomic(transaction ITransaction, hash string, editor Identity)
	// Salt returns 'Salt' of this 'Identity' instance.
	Salt() string
	// UpdateSalt directly updates 'Salt' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateSalt(salt string, editor Identity)
	// UpdateSaltAtomic updates 'Salt' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateSaltAtomic(transaction ITransaction, salt string, editor Identity)
	// PublicKey returns 'PublicKey' of this 'Identity' instance.
	PublicKey() string
	// UpdatePublicKey directly updates 'PublicKey' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdatePublicKey(publicKey string, editor Identity)
	// UpdatePublicKeyAtomic updates 'PublicKey' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdatePublicKeyAtomic(transaction ITransaction, publicKey string, editor Identity)
	// PrivateKey returns 'PrivateKey' of this 'Identity' instance.
	PrivateKey() string
	// UpdatePrivateKey directly updates 'PrivateKey' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdatePrivateKey(privateKey string, editor Identity)
	// UpdatePrivateKeyAtomic updates 'PrivateKey' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdatePrivateKeyAtomic(transaction ITransaction, privateKey string, editor Identity)
	// Permission returns 'Permission' of this 'Identity' instance.
	Permission() uint64
	// UpdatePermission directly updates 'Permission' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdatePermission(permission uint64, editor Identity)
	// UpdatePermissionAtomic updates 'Permission' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdatePermissionAtomic(transaction ITransaction, permission uint64, editor Identity)
	// Restriction returns 'Restriction' of this 'Identity' instance.
	Restriction() uint32
	// UpdateRestriction directly updates 'Restriction' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateRestriction(restriction uint32, editor Identity)
	// UpdateRestrictionAtomic updates 'Restriction' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateRestrictionAtomic(transaction ITransaction, restriction uint32, editor Identity)
	// LastLogin returns 'LastLogin' of this 'Identity' instance.
	LastLogin() int64
	// UpdateLastLogin directly updates 'LastLogin' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateLastLogin(lastLogin int64, editor Identity)
	// UpdateLastLoginAtomic updates 'LastLogin' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateLastLoginAtomic(transaction ITransaction, lastLogin int64, editor Identity)
	// LoginCount returns 'LoginCount' of this 'Identity' instance.
	LoginCount() uint32
	// UpdateLoginCount directly updates 'LoginCount' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateLoginCount(loginCount uint32, editor Identity)
	// UpdateLoginCountAtomic updates 'LoginCount' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateLoginCountAtomic(transaction ITransaction, loginCount uint32, editor Identity)
	// RemoteAddress returns 'RemoteAddress' of this 'Identity' instance.
	RemoteAddress() string
	// SetRemoteAddress sets 'RemoteAddress' in-memory value of this 'Identity' instance.
	// This doesn't affect the persistent data store.
	SetRemoteAddress(remoteAddress string)
	// UserAgent returns 'UserAgent' of this 'Identity' instance.
	UserAgent() string
	// SetUserAgent sets 'UserAgent' in-memory value of this 'Identity' instance.
	// This doesn't affect the persistent data store.
	SetUserAgent(userAgent string)
	Role() Role
	IsInRole(role Role) bool
	IsRestricted() bool
	IsNotRestricted() bool
	Payload() Pointer
	SetToken(token string)
	SetSystemCallHandler(func(Identity, []string) error)
	SystemCall(Identity, []string) error
}

type IIdentityCollection

type IIdentityCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IIdentity
	Append(identity IIdentity)
	ForEach(IdentityIterator)
	Reverse() IIdentityCollection
	Array() Identities
}

type IIdentityManager

type IIdentityManager interface {
	ISystemComponent
	ISecurityHandler
	OnCacheChanged(IdentityCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition IdentityCondition) bool
	ListIdentities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IIdentityCollection
	GetIdentity(id int64, editor Identity) (IIdentity, error)
	GetIdentityByUsername(username string, editor Identity) (IIdentity, error)
	AddIdentity(username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	AddIdentityWithCustomId(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	AddIdentityObject(identity IIdentity, editor Identity) (IIdentity, error)
	AddIdentityAtomic(transaction ITransaction, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	AddIdentityWithCustomIdAtomic(id int64, transaction ITransaction, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	AddIdentityObjectAtomic(transaction ITransaction, identity IIdentity, editor Identity) (IIdentity, error)
	Log(username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, source string, editor Identity, payload string)
	UpdateIdentity(id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	UpdateIdentityObject(id int64, identity IIdentity, editor Identity) (IIdentity, error)
	UpdateIdentityAtomic(transaction ITransaction, id int64, username string, phoneNumber string, phoneNumberConfirmed bool, firstName string, lastName string, displayName string, email string, emailConfirmed bool, avatar string, banner string, summary string, token string, multiFactor bool, hash string, salt string, publicKey string, privateKey string, permission uint64, restriction uint32, lastLogin int64, loginCount uint32, editor Identity) (IIdentity, error)
	UpdateIdentityObjectAtomic(transaction ITransaction, id int64, identity IIdentity, editor Identity) (IIdentity, error)
	AddOrUpdateIdentityObject(id int64, identity IIdentity, editor Identity) (IIdentity, error)
	AddOrUpdateIdentityObjectAtomic(transaction ITransaction, id int64, identity IIdentity, editor Identity) (IIdentity, error)
	RemoveIdentity(id int64, editor Identity) (IIdentity, error)
	RemoveIdentityAtomic(transaction ITransaction, id int64, editor Identity) (IIdentity, error)
	Find(id int64) IIdentity
	ForEach(iterator IdentityIterator)
	Filter(predicate IdentityFilterPredicate) IIdentityCollection
	Map(predicate IdentityMapPredicate) IIdentityCollection
}

type ILoginResult

type ILoginResult interface {
	Username() string
	Token() string
}

type ILogoutResult

type ILogoutResult interface {
}

type IObject

type IObject interface {
	Stringer
	// Id returns the unique identifier or 'Id' of this object instance.
	Id() int64
	SortOrder() float32
	// Validate checks whether the current instance contains any errors.
	Validate() error
	Lock(context uint64)
	Unlock(context uint64)
}

type IPostToInboxResult

type IPostToInboxResult interface {
	Body() []byte
}

type IPostToOutboxResult

type IPostToOutboxResult interface {
	Body() []byte
}

type IRemoteActivity

type IRemoteActivity interface {
	IObject
	// EntryPoint returns 'EntryPoint' of this 'RemoteActivity' instance.
	EntryPoint() string
	// UpdateEntryPoint directly updates 'EntryPoint' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateEntryPoint(entryPoint string, editor Identity)
	// UpdateEntryPointAtomic updates 'EntryPoint' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateEntryPointAtomic(transaction ITransaction, entryPoint string, editor Identity)
	// Duration returns 'Duration' of this 'RemoteActivity' instance.
	Duration() int64
	// UpdateDuration directly updates 'Duration' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateDuration(duration int64, editor Identity)
	// UpdateDurationAtomic updates 'Duration' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateDurationAtomic(transaction ITransaction, duration int64, editor Identity)
	// Successful returns 'Successful' of this 'RemoteActivity' instance.
	Successful() bool
	// UpdateSuccessful directly updates 'Successful' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateSuccessful(successful bool, editor Identity)
	// UpdateSuccessfulAtomic updates 'Successful' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateSuccessfulAtomic(transaction ITransaction, successful bool, editor Identity)
	// ErrorMessage returns 'ErrorMessage' of this 'RemoteActivity' instance.
	ErrorMessage() string
	// UpdateErrorMessage directly updates 'ErrorMessage' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateErrorMessage(errorMessage string, editor Identity)
	// UpdateErrorMessageAtomic updates 'ErrorMessage' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateErrorMessageAtomic(transaction ITransaction, errorMessage string, editor Identity)
	// RemoteAddress returns 'RemoteAddress' of this 'RemoteActivity' instance.
	RemoteAddress() string
	// UpdateRemoteAddress directly updates 'RemoteAddress' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateRemoteAddress(remoteAddress string, editor Identity)
	// UpdateRemoteAddressAtomic updates 'RemoteAddress' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateRemoteAddressAtomic(transaction ITransaction, remoteAddress string, editor Identity)
	// UserAgent returns 'UserAgent' of this 'RemoteActivity' instance.
	UserAgent() string
	// UpdateUserAgent directly updates 'UserAgent' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateUserAgent(userAgent string, editor Identity)
	// UpdateUserAgentAtomic updates 'UserAgent' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateUserAgentAtomic(transaction ITransaction, userAgent string, editor Identity)
	// EventType returns 'EventType' of this 'RemoteActivity' instance.
	EventType() uint32
	// UpdateEventType directly updates 'EventType' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateEventType(eventType uint32, editor Identity)
	// UpdateEventTypeAtomic updates 'EventType' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateEventTypeAtomic(transaction ITransaction, eventType uint32, editor Identity)
	// Timestamp returns 'Timestamp' of this 'RemoteActivity' instance.
	Timestamp() int64
	// UpdateTimestamp directly updates 'Timestamp' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateTimestamp(timestamp int64, editor Identity)
	// UpdateTimestampAtomic updates 'Timestamp' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateTimestampAtomic(transaction ITransaction, timestamp int64, editor Identity)
}

type IRemoteActivityCollection

type IRemoteActivityCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IRemoteActivity
	Append(remoteActivity IRemoteActivity)
	ForEach(RemoteActivityIterator)
	Reverse() IRemoteActivityCollection
	Array() RemoteActivities
}

type IRemoteActivityManager

type IRemoteActivityManager interface {
	ISystemComponent
	OnCacheChanged(RemoteActivityCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition RemoteActivityCondition) bool
	ListRemoteActivities(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IRemoteActivityCollection
	GetRemoteActivity(id int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivity(entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivityWithCustomId(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivityObject(remoteActivity IRemoteActivity, editor Identity) (IRemoteActivity, error)
	AddRemoteActivityAtomic(transaction ITransaction, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivityWithCustomIdAtomic(id int64, transaction ITransaction, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	AddRemoteActivityObjectAtomic(transaction ITransaction, remoteActivity IRemoteActivity, editor Identity) (IRemoteActivity, error)
	Log(entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, source string, editor Identity, payload string)
	UpdateRemoteActivity(id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	UpdateRemoteActivityObject(id int64, remoteActivity IRemoteActivity, editor Identity) (IRemoteActivity, error)
	UpdateRemoteActivityAtomic(transaction ITransaction, id int64, entryPoint string, duration int64, successful bool, errorMessage string, remoteAddress string, userAgent string, eventType uint32, timestamp int64, editor Identity) (IRemoteActivity, error)
	UpdateRemoteActivityObjectAtomic(transaction ITransaction, id int64, remoteActivity IRemoteActivity, editor Identity) (IRemoteActivity, error)
	AddOrUpdateRemoteActivityObject(id int64, remoteActivity IRemoteActivity, editor Identity) (IRemoteActivity, error)
	AddOrUpdateRemoteActivityObjectAtomic(transaction ITransaction, id int64, remoteActivity IRemoteActivity, editor Identity) (IRemoteActivity, error)
	RemoveRemoteActivity(id int64, editor Identity) (IRemoteActivity, error)
	RemoveRemoteActivityAtomic(transaction ITransaction, id int64, editor Identity) (IRemoteActivity, error)
	Find(id int64) IRemoteActivity
	ForEach(iterator RemoteActivityIterator)
	Filter(predicate RemoteActivityFilterPredicate) IRemoteActivityCollection
	Map(predicate RemoteActivityMapPredicate) IRemoteActivityCollection
}

type IResendVerificationCodeResult

type IResendVerificationCodeResult interface {
	Code() string
}

type IResetPasswordResult

type IResetPasswordResult interface {
}

type ISignupResult

type ISignupResult interface {
	Token() string
	Code() string
}

type ISpi

type ISpi interface {
}

type ISpiCollection

type ISpiCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() ISpi
	Append(spi ISpi)
	ForEach(SpiIterator)
	Reverse() ISpiCollection
	Array() Spis
}

type ISpiManager

type ISpiManager interface {
	ISystemComponent
	OnCacheChanged(SpiCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition SpiCondition) bool
	ListSpis(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ISpiCollection
	GetSpi(id int64, editor Identity) (ISpi, error)
	AddSpi(editor Identity) (ISpi, error)
	AddSpiWithCustomId(id int64, editor Identity) (ISpi, error)
	AddSpiObject(spi ISpi, editor Identity) (ISpi, error)
	AddSpiAtomic(transaction ITransaction, editor Identity) (ISpi, error)
	AddSpiWithCustomIdAtomic(id int64, transaction ITransaction, editor Identity) (ISpi, error)
	AddSpiObjectAtomic(transaction ITransaction, spi ISpi, editor Identity) (ISpi, error)
	Log(source string, editor Identity, payload string)
	UpdateSpi(id int64, editor Identity) (ISpi, error)
	UpdateSpiObject(id int64, spi ISpi, editor Identity) (ISpi, error)
	UpdateSpiAtomic(transaction ITransaction, id int64, editor Identity) (ISpi, error)
	UpdateSpiObjectAtomic(transaction ITransaction, id int64, spi ISpi, editor Identity) (ISpi, error)
	AddOrUpdateSpiObject(id int64, spi ISpi, editor Identity) (ISpi, error)
	AddOrUpdateSpiObjectAtomic(transaction ITransaction, id int64, spi ISpi, editor Identity) (ISpi, error)
	RemoveSpi(id int64, editor Identity) (ISpi, error)
	RemoveSpiAtomic(transaction ITransaction, id int64, editor Identity) (ISpi, error)
	Find(id int64) ISpi
	ForEach(iterator SpiIterator)
	Filter(predicate SpiFilterPredicate) ISpiCollection
	Map(predicate SpiMapPredicate) ISpiCollection
	Echo(document IDocument, editor Identity) (IEchoResult, error)
	GetServerConfiguration(editor Identity) (IGetServerConfigurationResult, error)
	CheckUsernameAvailability(username string, editor Identity) (ICheckUsernameAvailabilityResult, error)
	Signup(username string, email string, password string, editor Identity) (ISignupResult, error)
	ResendVerificationCode(email string, editor Identity) (IResendVerificationCodeResult, error)
	Verify(email string, token string, code string, editor Identity) (IVerifyResult, error)
	Login(email string, password string, editor Identity) (ILoginResult, error)
	GetProfileByUser(editor Identity) (IGetProfileByUserResult, error)
	UpdateProfileByUser(displayName string, avatar string, banner string, summary string, github string, editor Identity) (IUpdateProfileByUserResult, error)
	ChangePassword(currentPassword string, newPassword string, editor Identity) (IChangePasswordResult, error)
	ResetPassword(usernameOrEmail string, editor Identity) (IResetPasswordResult, error)
	Logout(editor Identity) (ILogoutResult, error)
	Webfinger(resource string, editor Identity) (IWebfingerResult, error)
	GetPackages(editor Identity) (IGetPackagesResult, error)
	GetActor(username string, editor Identity) (IGetActorResult, error)
	FollowActor(username string, account string, editor Identity) (IFollowActorResult, error)
	AuthorizeInteraction(uri string, editor Identity) (IAuthorizeInteractionResult, error)
	GetFollowers(username string, editor Identity) (IGetFollowersResult, error)
	GetFollowing(username string, editor Identity) (IGetFollowingResult, error)
	PostToOutbox(username string, body []byte, editor Identity) (IPostToOutboxResult, error)
	GetOutbox(username string, editor Identity) (IGetOutboxResult, error)
	PostToInbox(username string, body []byte, editor Identity) (IPostToInboxResult, error)
	GetInbox(username string, editor Identity) (IGetInboxResult, error)
}

type ISystemComponent

type ISystemComponent interface {
	Name() string
	ResolveDependencies(dependencies ...ISystemComponent) error
	Load() error
	Reload() error
	IsTestEnvironment() bool
	IsDevelopmentEnvironment() bool
	IsStagingEnvironment() bool
	IsProductionEnvironment() bool
	UniqueId() int64
	Logger() ILogger
	Async(task func())
	GenerateUUID() string
	GenerateSalt() string
	GenerateHash(value string, salt string) string
	GenerateJwtToken() string
	GenerateRSAKeyPair() (string, string, error)
	VerifyJwtToken(token string) error
	GenerateCode() string
	Email(destination string, format string, args ...interface{})
	SMS(destination string, format string, args ...interface{})
	Format(format string, args ...interface{}) string
	Match(pattern string, input string) (bool, error)
	Error(interface{}) error
}

type ISystemComponentFactory

type ISystemComponentFactory interface {
	Create(SystemComponentType, IConfiguration, ILogger, ...ISystemComponent) ISystemComponent
	Components() []ISystemComponent
}

type ISystemSchedule

type ISystemSchedule interface {
	IObject
	// Enabled returns 'Enabled' of this 'SystemSchedule' instance.
	Enabled() bool
	// UpdateEnabled directly updates 'Enabled' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateEnabled(enabled bool, editor Identity)
	// UpdateEnabledAtomic updates 'Enabled' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateEnabledAtomic(transaction ITransaction, enabled bool, editor Identity)
	// Config returns 'Config' of this 'SystemSchedule' instance.
	Config() string
	// UpdateConfig directly updates 'Config' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateConfig(config string, editor Identity)
	// UpdateConfigAtomic updates 'Config' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateConfigAtomic(transaction ITransaction, config string, editor Identity)
}

type ISystemScheduleCollection

type ISystemScheduleCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() ISystemSchedule
	Append(systemSchedule ISystemSchedule)
	ForEach(SystemScheduleIterator)
	Reverse() ISystemScheduleCollection
	Array() SystemSchedules
}

type ISystemScheduleManager

type ISystemScheduleManager interface {
	ISystemComponent
	OnCacheChanged(SystemScheduleCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition SystemScheduleCondition) bool
	ListSystemSchedules(pageIndex uint32, pageSize uint32, criteria string, editor Identity) ISystemScheduleCollection
	GetSystemSchedule(id int64, editor Identity) (ISystemSchedule, error)
	AddSystemSchedule(enabled bool, config string, editor Identity) (ISystemSchedule, error)
	AddSystemScheduleWithCustomId(id int64, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	AddSystemScheduleObject(systemSchedule ISystemSchedule, editor Identity) (ISystemSchedule, error)
	AddSystemScheduleAtomic(transaction ITransaction, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	AddSystemScheduleWithCustomIdAtomic(id int64, transaction ITransaction, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	AddSystemScheduleObjectAtomic(transaction ITransaction, systemSchedule ISystemSchedule, editor Identity) (ISystemSchedule, error)
	Log(enabled bool, config string, source string, editor Identity, payload string)
	UpdateSystemSchedule(id int64, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	UpdateSystemScheduleObject(id int64, systemSchedule ISystemSchedule, editor Identity) (ISystemSchedule, error)
	UpdateSystemScheduleAtomic(transaction ITransaction, id int64, enabled bool, config string, editor Identity) (ISystemSchedule, error)
	UpdateSystemScheduleObjectAtomic(transaction ITransaction, id int64, systemSchedule ISystemSchedule, editor Identity) (ISystemSchedule, error)
	AddOrUpdateSystemScheduleObject(id int64, systemSchedule ISystemSchedule, editor Identity) (ISystemSchedule, error)
	AddOrUpdateSystemScheduleObjectAtomic(transaction ITransaction, id int64, systemSchedule ISystemSchedule, editor Identity) (ISystemSchedule, error)
	RemoveSystemSchedule(id int64, editor Identity) (ISystemSchedule, error)
	RemoveSystemScheduleAtomic(transaction ITransaction, id int64, editor Identity) (ISystemSchedule, error)
	Find(id int64) ISystemSchedule
	ForEach(iterator SystemScheduleIterator)
	Filter(predicate SystemScheduleFilterPredicate) ISystemScheduleCollection
	Map(predicate SystemScheduleMapPredicate) ISystemScheduleCollection
}

type ITransaction

type ITransaction interface {
	OnCommit(func())
}

type IUpdateProfileByUserResult

type IUpdateProfileByUserResult interface {
	DisplayName() string
	Avatar() string
	Banner() string
	Summary() string
	Github() string
}

type IUser

type IUser interface {
	IObject
	// Github returns 'Github' of this 'User' instance.
	Github() string
	// UpdateGithub directly updates 'Github' into persistent data store and
	// refreshes the in-memory cache after successful update.
	UpdateGithub(github string, editor Identity)
	// UpdateGithubAtomic updates 'Github' into persistent data store through a transaction and
	// refreshes the in-memory cache after successful commit.
	UpdateGithubAtomic(transaction ITransaction, github string, editor Identity)
}

type IUserCollection

type IUserCollection interface {
	Count() int
	IsEmpty() bool
	IsNotEmpty() bool
	HasExactlyOneItem() bool
	HasAtLeastOneItem() bool
	First() IUser
	Append(user IUser)
	ForEach(UserIterator)
	Reverse() IUserCollection
	Array() Users
}

type IUserManager

type IUserManager interface {
	ISystemComponent
	OnCacheChanged(UserCacheCallback)
	Count() int
	Exists(id int64) bool
	ExistsWhich(condition UserCondition) bool
	ListUsers(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IUserCollection
	GetUser(id int64, editor Identity) (IUser, error)
	AddUser(identityId int64, github string, editor Identity) (IUser, error)
	AddUserObject(identityId int64, user IUser, editor Identity) (IUser, error)
	AddUserAtomic(transaction ITransaction, identityId int64, github string, editor Identity) (IUser, error)
	AddUserObjectAtomic(transaction ITransaction, identityId int64, user IUser, editor Identity) (IUser, error)
	Log(identityId int64, github string, source string, editor Identity, payload string)
	UpdateUser(id int64, github string, editor Identity) (IUser, error)
	UpdateUserObject(id int64, user IUser, editor Identity) (IUser, error)
	UpdateUserAtomic(transaction ITransaction, id int64, github string, editor Identity) (IUser, error)
	UpdateUserObjectAtomic(transaction ITransaction, id int64, user IUser, editor Identity) (IUser, error)
	AddOrUpdateUserObject(id int64, user IUser, editor Identity) (IUser, error)
	AddOrUpdateUserObjectAtomic(transaction ITransaction, id int64, user IUser, editor Identity) (IUser, error)
	RemoveUser(id int64, editor Identity) (IUser, error)
	RemoveUserAtomic(transaction ITransaction, id int64, editor Identity) (IUser, error)
	Find(id int64) IUser
	ForEach(iterator UserIterator)
	Filter(predicate UserFilterPredicate) IUserCollection
	Map(predicate UserMapPredicate) IUserCollection
}

type IVerifyResult

type IVerifyResult interface {
	Token() string
}

type IWebfingerResult

type IWebfingerResult interface {
	Aliases() []string
	Links() []IActivityPubLink
	Subject() string
}

type Identities

type Identities []IIdentity

type IdentityCacheCallback

type IdentityCacheCallback func()

type IdentityCondition

type IdentityCondition func(IIdentity) bool

type IdentityFilterPredicate

type IdentityFilterPredicate func(IIdentity) bool

type IdentityIterator

type IdentityIterator func(IIdentity)

type IdentityMapPredicate

type IdentityMapPredicate func(IIdentity) IIdentity

type RemoteActivities

type RemoteActivities []IRemoteActivity

type RemoteActivityCacheCallback

type RemoteActivityCacheCallback func()

type RemoteActivityCondition

type RemoteActivityCondition func(IRemoteActivity) bool

type RemoteActivityFilterPredicate

type RemoteActivityFilterPredicate func(IRemoteActivity) bool

type RemoteActivityIterator

type RemoteActivityIterator func(IRemoteActivity)

type RemoteActivityMapPredicate

type RemoteActivityMapPredicate func(IRemoteActivity) IRemoteActivity

type SpiCacheCallback

type SpiCacheCallback func()

type SpiCondition

type SpiCondition func(ISpi) bool

type SpiFilterPredicate

type SpiFilterPredicate func(ISpi) bool

type SpiIterator

type SpiIterator func(ISpi)

type SpiMapPredicate

type SpiMapPredicate func(ISpi) ISpi

type Spis

type Spis []ISpi

type SystemAction

type SystemAction func() error

type SystemComponentType

type SystemComponentType int
const (
	SYSTEM_COMPONENT_DOCUMENT_MANAGER                       SystemComponentType = 0x00000001
	SYSTEM_COMPONENT_SYSTEM_SCHEDULE_MANAGER                SystemComponentType = 0x00000002
	SYSTEM_COMPONENT_IDENTITY_MANAGER                       SystemComponentType = 0x00000003
	SYSTEM_COMPONENT_ACCESS_CONTROL_MANAGER                 SystemComponentType = 0x00000004
	SYSTEM_COMPONENT_REMOTE_ACTIVITY_MANAGER                SystemComponentType = 0x00000005
	SYSTEM_COMPONENT_CATEGORY_TYPE_MANAGER                  SystemComponentType = 0x00000006
	SYSTEM_COMPONENT_CATEGORY_MANAGER                       SystemComponentType = 0x00000007
	SYSTEM_COMPONENT_USER_MANAGER                           SystemComponentType = 0x00000008
	SYSTEM_COMPONENT_ACTIVITY_PUB_OBJECT_MANAGER            SystemComponentType = 0x00000009
	SYSTEM_COMPONENT_ACTIVITY_PUB_ACTIVITY_MANAGER          SystemComponentType = 0x0000000A
	SYSTEM_COMPONENT_ACTIVITY_PUB_PUBLIC_KEY_MANAGER        SystemComponentType = 0x0000000B
	SYSTEM_COMPONENT_ACTIVITY_PUB_LINK_MANAGER              SystemComponentType = 0x0000000C
	SYSTEM_COMPONENT_ACTIVITY_PUB_MEDIA_MANAGER             SystemComponentType = 0x0000000D
	SYSTEM_COMPONENT_ACTIVITY_PUB_INCOMING_ACTIVITY_MANAGER SystemComponentType = 0x0000000E
	SYSTEM_COMPONENT_ACTIVITY_PUB_OUTGOING_ACTIVITY_MANAGER SystemComponentType = 0x0000000F
	SYSTEM_COMPONENT_ACTIVITY_PUB_FOLLOWER_MANAGER          SystemComponentType = 0x00000010
	SYSTEM_COMPONENT_SPI_MANAGER                            SystemComponentType = 0x00000011
)

noinspection GoSnakeCaseUsage

type SystemComponentsContainer

type SystemComponentsContainer map[string]ISystemComponent

type SystemObjectCache

type SystemObjectCache map[int64]ISystemObject

type SystemScheduleCacheCallback

type SystemScheduleCacheCallback func()

type SystemScheduleCondition

type SystemScheduleCondition func(ISystemSchedule) bool

type SystemScheduleFilterPredicate

type SystemScheduleFilterPredicate func(ISystemSchedule) bool

type SystemScheduleIterator

type SystemScheduleIterator func(ISystemSchedule)

type SystemScheduleMapPredicate

type SystemScheduleMapPredicate func(ISystemSchedule) ISystemSchedule

type SystemSchedules

type SystemSchedules []ISystemSchedule

type TransactionHandler

type TransactionHandler func(transaction ITransaction) error

type UserCacheCallback

type UserCacheCallback func()

type UserCondition

type UserCondition func(IUser) bool

type UserFilterPredicate

type UserFilterPredicate func(IUser) bool

type UserIterator

type UserIterator func(IUser)

type UserMapPredicate

type UserMapPredicate func(IUser) IUser

type Users

type Users []IUser

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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