Custom Resource Definitions
Generated by
routedctl crd docsfromcrates/api; do not edit by hand.
API group routed.io, version v1alpha1. All kinds are namespaced.
ModelTier
Plural modeltiers, short names mt.
| Field | Type | Description |
|---|---|---|
spec.capabilities? | []chat / tools / json / vision / audio / embeddings / reasoning | Capabilities this tier offers. |
spec.contextWindow | integer (uint64) | Maximum context window in tokens. |
spec.cost | object | Prices. |
spec.cost.currency? | EUR / USD | Currency of both prices. |
spec.cost.inputPerMillion | number (double) | Input price per million tokens. |
spec.cost.outputPerMillion | number (double) | Output price per million tokens. |
spec.gatewayModel | string | Exact model name the gateway expects in the model field. |
spec.labels? | map | Free-form selector labels matched by RoutingPolicy.spec.candidates.tierSelector. |
spec.latency? | object | Latency priors. |
spec.latency?.p50Ms? | integer (uint64) | Median latency. |
spec.latency?.p95Ms? | integer (uint64) | 95th percentile latency. |
spec.provider? | string | Informational provider name. |
spec.quality? | object | Quality priors. |
spec.quality?.baseline | number (double) | Generic quality prior. |
spec.quality?.byTask? | map | Per-task overrides keyed by task label. |
spec.security? | object | Security limits. |
spec.security?.maxRiskScore? | number (double) | Highest injection / risk score this tier may receive (0..=1). |
spec.security?.toolCallingAllowed? | boolean | Whether requests containing tools may be routed here. |
spec.sovereignty | object | Sovereignty attributes used by data-class constraints. |
spec.sovereignty.allowedDataClasses? | []string | Data classes (by DataClass name) this tier may receive. |
spec.sovereignty.cloudActExposed? | boolean | Whether the operator is subject to the US CLOUD Act. |
spec.sovereignty.dataResidency? | string | Free-form region label (for example eu-de). |
spec.sovereignty.jurisdiction | EU / US / OTHER | Legal jurisdiction. |
spec.sovereignty.operatorControl | eu-entity / us-entity / on-prem | Who operates the endpoint. |
status.conditions? | []object | Standard Kubernetes conditions (Ready, Compiled, ReferencesResolved). |
status.conditions?[] | object | Condition contains details for one aspect of the current state of this API Resource. |
status.conditions?[].lastTransitionTime | string (date-time) | lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. |
status.conditions?[].message | string | message is a human readable message indicating details about the transition. This may be an empty string. |
status.conditions?[].observedGeneration? | integer (int64) | observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. |
status.conditions?[].reason | string | reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. |
status.conditions?[].status | string | status of the condition, one of True, False, Unknown. |
status.conditions?[].type | string | type of condition in CamelCase or in foo.example.com/CamelCase. |
status.observedGeneration? | integer (int64) | Generation last processed by the operator. |
DataClass
Plural dataclasses, short names dc.
| Field | Type | Description |
|---|---|---|
spec.constraints? | object | Constraints imposed on candidate tiers when this class applies. |
spec.constraints?.forbidCapabilities? | []chat / tools / json / vision / audio / embeddings / reasoning | Tiers offering any of these capabilities are eliminated. |
spec.constraints?.forbidCloudActExposed? | boolean | Tiers exposed to the CLOUD Act are eliminated. |
spec.constraints?.maxRetentionDays? | integer (uint32) | Informational retention limit for gateway / downstream. |
spec.constraints?.requireJurisdiction? | []EU / US / OTHER | Tier jurisdiction must be one of these (empty = any). |
spec.constraints?.requireOperatorControl? | []eu-entity / us-entity / on-prem | Tier operator control must be one of these (empty = any). |
spec.description? | string | Human description. |
spec.detection? | object | How requests are mapped to this class. |
spec.detection?.headerValues? | []string | Values of X-Routed-Data-Class that map to this class. |
spec.detection?.minConfidence? | number (double) | Minimum detector confidence for inference. |
spec.detection?.piiEntities? | []PERSON / EMAIL / PHONE / IBAN / NATIONAL_ID / HEALTH / CREDIT_CARD / ADDRESS | PII entities whose presence infers this class. |
spec.rank | integer (uint32) | Sensitivity rank; higher is more sensitive. |
status.conditions? | []object | Standard Kubernetes conditions (Ready, Compiled, ReferencesResolved). |
status.conditions?[] | object | Condition contains details for one aspect of the current state of this API Resource. |
status.conditions?[].lastTransitionTime | string (date-time) | lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. |
status.conditions?[].message | string | message is a human readable message indicating details about the transition. This may be an empty string. |
status.conditions?[].observedGeneration? | integer (int64) | observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. |
status.conditions?[].reason | string | reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. |
status.conditions?[].status | string | status of the condition, one of True, False, Unknown. |
status.conditions?[].type | string | type of condition in CamelCase or in foo.example.com/CamelCase. |
status.observedGeneration? | integer (int64) | Generation last processed by the operator. |
RoutingPolicy
Plural routingpolicies, short names rp.
| Field | Type | Description |
|---|---|---|
spec.candidates? | object | Candidate tier selection. |
spec.candidates?.exclude? | []string | Tier names to exclude. |
spec.candidates?.include? | []string | Explicit tier names to include. |
spec.candidates?.tierSelector? | object | Label selector over ModelTier.spec.labels. |
spec.candidates?.tierSelector?.matchLabels? | map | All labels must match. |
spec.explain? | boolean | Emit the explanation header. |
spec.fallbackDecision? | object | Decision applied when classification fails or no candidate survives. |
spec.fallbackDecision?.tier? | string | Tier used when classification fails or times out, if it satisfies the data class. |
spec.hardConstraints? | object | Constraints that eliminate candidates (never weights). |
spec.hardConstraints?.denyIfRiskScoreAbove? | number (double) | Block the request entirely above this risk score. |
spec.hardConstraints?.maxCostPerRequestEUR? | number (double) | Maximum estimated cost per request in EUR. |
spec.hardConstraints?.requireCapabilities? | []chat / tools / json / vision / audio / embeddings / reasoning | Capabilities every candidate must offer. |
spec.hardConstraints?.respectDataClass? | boolean | Apply DataClass constraints. |
spec.learnedRouter? | object | Learned router settings. |
spec.learnedRouter?.enabled? | boolean | Use the learned router for quality prediction. |
spec.learnedRouter?.minConfidence? | number (double) | Below this confidence, fall back to heuristic ranking. |
spec.learnedRouter?.profile? | string | RouterProfile name. |
spec.match? | object | Scope of the policy. |
spec.match?.agents? | []string | Agents from X-Routed-Agent. |
spec.match?.modelAliases? | []string | Requested model aliases that trigger routing; anything else passes through. |
spec.match?.paths? | []string | Request paths. |
spec.match?.tenants? | []string | Tenants from X-Routed-Tenant. |
spec.objective? | object | Optimisation objective over surviving candidates. |
spec.objective?.mode? | cost-first-with-quality-floor / quality-first / balanced / latency-first | Mode. |
spec.objective?.qualityFloor? | number (double) | Minimum predicted quality for the task. |
spec.objective?.weights? | object | Explicit weights; defaults depend on mode. |
spec.objective?.weights?.cost | number (double) | Cost weight. |
spec.objective?.weights?.latency | number (double) | Latency weight. |
spec.objective?.weights?.quality | number (double) | Quality weight. |
spec.overridable? | boolean | Allow callers to select this policy with X-Routed-Policy when it matches the request but a higher-priority policy would otherwise win. Off by default so an untrusted header can never move a request to a looser policy (ADR-0007). |
spec.priority? | integer (int32) | Higher wins when several policies match. |
spec.reasoningBudget? | object | Reasoning budget per complexity. |
spec.reasoningBudget?.enabled? | boolean | Set reasoning parameters per complexity. |
spec.reasoningBudget?.map? | map | Complexity to reasoning level. |
status.compiledHash? | string | Hash of the snapshot this policy was last compiled into. |
status.conditions? | []object | Standard conditions. |
status.conditions?[] | object | Condition contains details for one aspect of the current state of this API Resource. |
status.conditions?[].lastTransitionTime | string (date-time) | lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. |
status.conditions?[].message | string | message is a human readable message indicating details about the transition. This may be an empty string. |
status.conditions?[].observedGeneration? | integer (int64) | observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. |
status.conditions?[].reason | string | reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. |
status.conditions?[].status | string | status of the condition, one of True, False, Unknown. |
status.conditions?[].type | string | type of condition in CamelCase or in foo.example.com/CamelCase. |
status.observedGeneration? | integer (int64) | Generation last processed by the operator. |
RouterProfile
Plural routerprofiles, short names rprof.
| Field | Type | Description |
|---|---|---|
spec.classifier? | object | Multi-task classifier (task, complexity, sensitivity). |
spec.classifier?.labels? | object | Label vocabularies. |
spec.classifier?.labels?.complexity? | []string | Complexity labels. |
spec.classifier?.labels?.sensitivity? | []string | Sensitivity labels (match DataClass names). |
spec.classifier?.labels?.task? | []string | Task labels (match ModelTier.spec.quality.byTask keys). |
spec.classifier?.timeoutMs? | integer (uint64) | Per-call timeout in milliseconds. |
spec.classifier?.tokenizerUri? | string | Tokenizer artifact (a Hugging Face tokenizer.json, same URI forms) required by type: onnx (ADR-0016). |
spec.classifier?.type? | onnx / http / heuristic / stub | Implementation type. |
spec.classifier?.uri? | string | Artifact location (oci://...@sha256:..., https://...@sha256:... or file://..., ADR-0016/0019) or HTTP endpoint for type: http. |
spec.costModel? | object | Cost model parameters. |
spec.costModel?.defaultOutputTokens? | integer (uint64) | Output tokens assumed when the request does not set max_tokens. |
spec.costModel?.fxToEUR? | map | Conversion rates to EUR keyed by currency code (for example USD: 0.92). |
spec.embedder? | object | Embedding model. |
spec.embedder?.dimensions | integer (uint32) | Embedding dimensions. |
spec.embedder?.type? | onnx / http / heuristic / stub | Implementation type. |
spec.embedder?.uri? | string | Artifact location. |
spec.learnedRouter? | object | Learned router model and calibration. |
spec.learnedRouter?.calibration? | map | Quality floor (as string key) to probability threshold, produced by the trainer. |
spec.learnedRouter?.type? | onnx / http / heuristic / stub | Implementation type. |
spec.learnedRouter?.uri? | string | Artifact location. |
spec.security? | object | Security models. |
spec.security?.injectionDetector? | object | Injection detector. |
spec.security?.injectionDetector?.type? | onnx / http / heuristic / stub | Implementation type. |
spec.security?.injectionDetector?.uri? | string | Artifact location. |
spec.security?.piiDetector? | object | PII detector. |
spec.security?.piiDetector?.type? | onnx / http / heuristic / stub | Implementation type. |
spec.security?.piiDetector?.uri? | string | Artifact location. |
status.conditions? | []object | Standard Kubernetes conditions (Ready, Compiled, ReferencesResolved). |
status.conditions?[] | object | Condition contains details for one aspect of the current state of this API Resource. |
status.conditions?[].lastTransitionTime | string (date-time) | lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. |
status.conditions?[].message | string | message is a human readable message indicating details about the transition. This may be an empty string. |
status.conditions?[].observedGeneration? | integer (int64) | observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. |
status.conditions?[].reason | string | reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. |
status.conditions?[].status | string | status of the condition, one of True, False, Unknown. |
status.conditions?[].type | string | type of condition in CamelCase or in foo.example.com/CamelCase. |
status.observedGeneration? | integer (int64) | Generation last processed by the operator. |