pub struct RoutingPolicyRules {
pub allowed_models: Vec<String>,
pub model_ceiling_groups: Vec<Vec<String>>,
pub forbid_downgrade_for: Vec<String>,
}Expand description
The [routing] section — org gateway routing governance (enterprise#25,
Doc 08 §4.3). Enforced in the gateway forward path when this pack arrives
via a signed, trusted, enforced = true org::OrgPolicyV1.
Fields§
§allowed_models: Vec<String>Model allowlist patterns ("claude-*", "gpt-4o-mini"). A request for
a model matching none of them is refused org-wide. Empty = no
restriction. Accumulates down the extends chain (union — the floor
merge then intersects org vs. local, see floor).
model_ceiling_groups: Vec<Vec<String>>Additional conjunctive ceilings. Every group must match; an empty group denies every model. Preserves glob intersections without turning a disjoint intersection into the unrestricted empty primary list.
forbid_downgrade_for: Vec<String>Projects whose requests the router must never downgrade to a cheaper
tier (["security", "prod"]). Accumulates down the chain.
Implementations§
Trait Implementations§
Source§impl Clone for RoutingPolicyRules
impl Clone for RoutingPolicyRules
Source§impl Debug for RoutingPolicyRules
impl Debug for RoutingPolicyRules
Source§impl Default for RoutingPolicyRules
impl Default for RoutingPolicyRules
Source§impl<'de> Deserialize<'de> for RoutingPolicyRules
impl<'de> Deserialize<'de> for RoutingPolicyRules
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Forget for RoutingPolicyRules
impl Freeze for RoutingPolicyRules
impl Move for RoutingPolicyRules
impl RefUnwindSafe for RoutingPolicyRules
impl Send for RoutingPolicyRules
impl Sync for RoutingPolicyRules
impl Unpin for RoutingPolicyRules
impl UnsafeUnpin for RoutingPolicyRules
impl UnwindSafe for RoutingPolicyRules
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more