Rename root, api and sdk module paths (imports, go.mod, go_package, ldflags, build scripts, buf configs) and regenerate protobuf/gateway code with the project's pinned toolchain. Wire identifiers unchanged. api gets a local replace for sdk; root/api/sdk require v0.1.0. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
// Copyright IBM Corp. 2020, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
// Package boundary contains global interfaces and other definitions that
|
|
// define the Boundary domain.
|
|
package boundary
|
|
|
|
import (
|
|
"repo.anhonesthost.net/CyberCoveLLC/threshold/internal/db/timestamp"
|
|
"repo.anhonesthost.net/CyberCoveLLC/threshold/internal/types/resource"
|
|
)
|
|
|
|
// An Entity is an object distinguished by its identity, rather than its
|
|
// attributes. It can contain value objects and other entities.
|
|
type Entity interface {
|
|
GetPublicId() string
|
|
}
|
|
|
|
// An Aggregate is an entity that is the root of a transactional
|
|
// consistency boundary.
|
|
type Aggregate interface {
|
|
Entity
|
|
GetVersion() uint32
|
|
GetCreateTime() *timestamp.Timestamp
|
|
GetUpdateTime() *timestamp.Timestamp
|
|
}
|
|
|
|
// A Resource is an aggregate with a name, description, and resource type.
|
|
type Resource interface {
|
|
Aggregate
|
|
GetName() string
|
|
GetDescription() string
|
|
GetResourceType() resource.Type
|
|
}
|
|
|
|
// AuthzProtectedEntity is used by some functions (primarily
|
|
// scopeids.AuthzProtectedEntityProvider-conforming implementations) to deliver
|
|
// some common information necessary for calculating authz.
|
|
type AuthzProtectedEntity interface {
|
|
Entity
|
|
GetProjectId() string
|
|
GetUserId() string
|
|
}
|