Files
Assistant/contracts/capability/types.go
T
m 6e0040fe89
CI / test (pull_request) Successful in 12s
CI / test (push) Successful in 10s
feat: add notification delivery foundation
2026-08-16 19:08:07 +03:00

70 lines
1.7 KiB
Go

package capability
import (
"git.cin.su/m/Assistant/contracts/identity"
"git.cin.su/m/Assistant/platform/ids"
)
type CapabilityID ids.ID
type CapabilityBindingID ids.ID
type BindingState string
type BindingProtocol string
const (
BindingActive BindingState = "ACTIVE"
BindingRetired BindingState = "RETIRED"
ProtocolIdempotentReceiptV1 BindingProtocol = "IDEMPOTENT_RECEIPT_V1"
)
// Binding is Capability-owned correctness state. SecretRef is an opaque
// lookup name; it must never contain credential bytes.
type Binding struct {
ID CapabilityBindingID
CapabilityID CapabilityID
OwnerPrincipalID identity.PrincipalID
Revision int64
State BindingState
HTTPSOrigin string
DeliveryPath string
ReceiptPath string
Protocol BindingProtocol
SecretRef string
VerifiedAtUnixMillis int64
Health HealthState
}
type HealthState string
const (
HealthAvailable HealthState = "AVAILABLE"
HealthDegraded HealthState = "DEGRADED"
HealthUnavailable HealthState = "UNAVAILABLE"
)
type HealthReason string
const (
ReasonCognitiveProvidersUnavailable HealthReason = "COGNITIVE_PROVIDERS_UNAVAILABLE"
ReasonNone HealthReason = "NONE"
)
type HealthSemanticVersion int
const (
HealthV1 HealthSemanticVersion = 1
HealthV2 HealthSemanticVersion = 2
)
// Health is the Capability owner's current, explicit statement about whether
// a capability can be used. It is not an authority grant.
type Health struct {
CapabilityID CapabilityID
State HealthState
Reason HealthReason
Revision int64
SemanticVersion HealthSemanticVersion
ObservedAtUnixMillis *int64
}