necoherence/dynamic_admission
Types
pub type AdmissionDecision {
Submitted(
state: DynamicAdmissionState,
accepted: request_progression.Accepted,
)
Started(
state: DynamicAdmissionState,
result: request_progression.StartDecisionResult,
)
Coalesced(
state: DynamicAdmissionState,
identity: request_progression.RequestIdentity,
)
}
Constructors
-
Submitted( state: DynamicAdmissionState, accepted: request_progression.Accepted, ) -
Started( state: DynamicAdmissionState, result: request_progression.StartDecisionResult, ) -
Coalesced( state: DynamicAdmissionState, identity: request_progression.RequestIdentity, )
pub type AdmissionProvenance {
AdmissionProvenance(
future_uses: List(request_progression.RequestIdentity),
outstanding_signals: List(AdmissionSignal),
)
}
Constructors
-
AdmissionProvenance( future_uses: List(request_progression.RequestIdentity), outstanding_signals: List(AdmissionSignal), )
pub type AdmissionSignal {
AdmissionSignal(
identity: request_progression.RequestIdentity,
handle: request_progression.ExecutionHandle,
kind: SignalKind,
)
}
Constructors
-
AdmissionSignal( identity: request_progression.RequestIdentity, handle: request_progression.ExecutionHandle, kind: SignalKind, )
pub type CapacityObservation {
CapacityObservation(
observed: request_progression.ResourceBudget,
observed_at: Int,
)
}
Constructors
-
CapacityObservation( observed: request_progression.ResourceBudget, observed_at: Int, )
pub type CoalescingWitness {
CoalescedRequest(identity: request_progression.RequestIdentity)
NotCoalesced(reason: String)
}
Constructors
-
CoalescedRequest(identity: request_progression.RequestIdentity) -
NotCoalesced(reason: String)
pub type DynamicAdmissionFailure {
CapacityObservationUnavailable(age: Int, max_age: Int)
ResourceCoordinateMismatch(
configured_resource: String,
observed_resource: String,
)
ConfiguredSafetyLimitExceeded(
resource: String,
occupied: Int,
allowed: Int,
)
MeaningDenied(
identity: request_progression.RequestIdentity,
reason: request_progression.PermissionDenial,
)
PermissionIdentityMismatch(
request_identity: request_progression.RequestIdentity,
permission_identity: request_progression.RequestIdentity,
)
AdapterBindingUnavailable(
identity: request_progression.RequestIdentity,
)
BindingSelectionMismatch(
identity: request_progression.RequestIdentity,
)
ProgressionSubmitFailure(
failure: request_progression.SubmitFailure,
)
ProgressionStartFailure(
failure: request_progression.StartDecisionFailure,
)
ProvenanceRetentionRequired(
identity: request_progression.RequestIdentity,
)
AdmissionUnknownRequest(
identity: request_progression.RequestIdentity,
)
AdmissionRequestNotTerminal(
identity: request_progression.RequestIdentity,
)
}
Constructors
-
CapacityObservationUnavailable(age: Int, max_age: Int) -
ResourceCoordinateMismatch( configured_resource: String, observed_resource: String, ) -
ConfiguredSafetyLimitExceeded( resource: String, occupied: Int, allowed: Int, ) -
MeaningDenied( identity: request_progression.RequestIdentity, reason: request_progression.PermissionDenial, ) -
PermissionIdentityMismatch( request_identity: request_progression.RequestIdentity, permission_identity: request_progression.RequestIdentity, ) -
AdapterBindingUnavailable( identity: request_progression.RequestIdentity, ) -
BindingSelectionMismatch( identity: request_progression.RequestIdentity, ) -
ProgressionSubmitFailure( failure: request_progression.SubmitFailure, ) -
ProgressionStartFailure( failure: request_progression.StartDecisionFailure, ) -
ProvenanceRetentionRequired( identity: request_progression.RequestIdentity, ) -
AdmissionUnknownRequest( identity: request_progression.RequestIdentity, ) -
AdmissionRequestNotTerminal( identity: request_progression.RequestIdentity, )
pub type DynamicAdmissionInput {
DynamicAdmissionInput(
state: DynamicAdmissionState,
request: request_progression.RequestInput,
environment_specification: EnvironmentSpecification,
capacity_observation: CapacityObservation,
observed_at: Int,
start: option.Option(request_progression.CostSelection),
)
}
Constructors
-
DynamicAdmissionInput( state: DynamicAdmissionState, request: request_progression.RequestInput, environment_specification: EnvironmentSpecification, capacity_observation: CapacityObservation, observed_at: Int, start: option.Option(request_progression.CostSelection), )
pub type DynamicAdmissionResult {
DynamicAdmissionResult(
effective_budget: request_progression.ResourceBudget,
admission_decision: AdmissionDecision,
future_use_set: FutureUseSet,
outstanding_signal_set: OutstandingSignalSet,
provenance_erasure_witness: option.Option(
ProvenanceErasureWitness,
),
coalescing_witness: CoalescingWitness,
)
}
Constructors
-
DynamicAdmissionResult( effective_budget: request_progression.ResourceBudget, admission_decision: AdmissionDecision, future_use_set: FutureUseSet, outstanding_signal_set: OutstandingSignalSet, provenance_erasure_witness: option.Option( ProvenanceErasureWitness, ), coalescing_witness: CoalescingWitness, )
pub type DynamicAdmissionState {
DynamicAdmissionState(
progression: request_progression.RequestProgressionSnapshot,
configured_safety_limit: request_progression.ResourceBudget,
provenance: AdmissionProvenance,
)
}
Constructors
-
DynamicAdmissionState( progression: request_progression.RequestProgressionSnapshot, configured_safety_limit: request_progression.ResourceBudget, provenance: AdmissionProvenance, )
pub type EffectiveBudget =
request_progression.ResourceBudget
pub type EnvironmentSpecification {
EnvironmentSpecification(max_observation_age: Int)
}
Constructors
-
EnvironmentSpecification(max_observation_age: Int)
pub type FutureUseSet {
FutureUseSet(
identities: List(request_progression.RequestIdentity),
)
}
Constructors
-
FutureUseSet( identities: List(request_progression.RequestIdentity), )
pub type OutstandingSignalSet {
OutstandingSignalSet(signals: List(AdmissionSignal))
}
Constructors
-
OutstandingSignalSet(signals: List(AdmissionSignal))
pub type ProvenanceErasureWitness {
Erased(identity: request_progression.RequestIdentity)
Retained(
identity: request_progression.RequestIdentity,
reason: String,
)
}
Constructors
-
Erased(identity: request_progression.RequestIdentity) -
Retained( identity: request_progression.RequestIdentity, reason: String, )
pub type SignalKind {
PendingCompletion
PendingCancellation
}
Constructors
-
PendingCompletion -
PendingCancellation
Values
pub fn admit_dynamic_request(
input: DynamicAdmissionInput,
) -> core.Outcome(
DynamicAdmissionResult,
DynamicAdmissionFailure,
boundary_c,
boundary_p,
)
pub fn elide_admission_provenance(
state: DynamicAdmissionState,
identity: request_progression.RequestIdentity,
) -> core.Outcome(
#(DynamicAdmissionState, ProvenanceErasureWitness),
DynamicAdmissionFailure,
boundary_c,
boundary_p,
)