diff --git a/assets/agw-docs/pages/reference/api/api-main.md b/assets/agw-docs/pages/reference/api/api-main.md index befc645ff..ad72448e8 100644 --- a/assets/agw-docs/pages/reference/api/api-main.md +++ b/assets/agw-docs/pages/reference/api/api-main.md @@ -6,6 +6,8 @@ ### Resource Types - [AgentgatewayBackend](#agentgatewaybackend) +- [AgentgatewayModel](#agentgatewaymodel) +- [AgentgatewayModelList](#agentgatewaymodellist) - [AgentgatewayParameters](#agentgatewayparameters) - [AgentgatewayPolicy](#agentgatewaypolicy) @@ -124,6 +126,7 @@ the string "credit card", and masks any credit card numbers in the response. _Appears in:_ - [BackendAI](#backendai) +- [ModelPolicies](#modelpolicies) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -181,6 +184,7 @@ _Appears in:_ _Appears in:_ - [BedrockConfig](#bedrockconfig) +- [BedrockSettings](#bedrocksettings) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -326,6 +330,91 @@ _Appears in:_ | `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | Current condition state for the backend. | | MaxItems: 8
Optional: \{\}
| +#### AgentgatewayModel + + + + + + + +_Appears in:_ +- [AgentgatewayModelList](#agentgatewaymodellist) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `apiVersion` _string_ | `agentgateway.dev/v1alpha1` | | | +| `kind` _string_ | `AgentgatewayModel` | | | +| `kind` _string_ | Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\}
| +| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\}
| +| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
| +| `spec` _[AgentgatewayModelSpec](#agentgatewaymodelspec)_ | Desired model configuration. | | ExactlyOneOf: [provider virtualModel]
Required: \{\}
| +| `status` _[AgentgatewayModelStatus](#agentgatewaymodelstatus)_ | Current model attachment status. | | Optional: \{\}
| + + +#### AgentgatewayModelList + + + + + + + + + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `apiVersion` _string_ | `agentgateway.dev/v1alpha1` | | | +| `kind` _string_ | `AgentgatewayModelList` | | | +| `kind` _string_ | Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\}
| +| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\}
| +| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | | +| `items` _[AgentgatewayModel](#agentgatewaymodel) array_ | | | | + + +#### AgentgatewayModelSpec + + + + + +_Validation:_ +- ExactlyOneOf: [provider virtualModel] + +_Appears in:_ +- [AgentgatewayModel](#agentgatewaymodel) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `parentRefs` _[ParentReference](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#parentreference) array_ | Gateways and listeners to which this model attaches. | | MaxItems: 16
MinItems: 1
Required: \{\}
| +| `match` _[ModelMatch](#modelmatch)_ | Conditions for selecting this model from client requests. | | Optional: \{\}
| +| `visibility` _[ModelVisibility](#modelvisibility)_ | Controls whether clients can request this model directly. Internal models
can only be selected by virtual models. Defaults to Public. | Public | Optional: \{\}
| +| `provider` _[ModelProvider](#modelprovider)_ | Provider serving this concrete model. Provider-specific configuration is
set by the corresponding field below when needed. | | Optional: \{\}
| +| `azure` _[AzureSettings](#azuresettings)_ | Provider-specific settings for Azure AI. | | Optional: \{\}
| +| `vertexai` _[VertexAISettings](#vertexaisettings)_ | Provider-specific settings for Vertex AI. | | Optional: \{\}
| +| `bedrock` _[BedrockSettings](#bedrocksettings)_ | Provider-specific settings for Amazon Bedrock. | | Optional: \{\}
| +| `custom` _[CustomProviderSettings](#customprovidersettings)_ | Provider-specific settings for a custom provider. | | Optional: \{\}
| +| `baseURL` _[LongString](#longstring)_ | BaseURL overrides the provider address and base path prefix. It must use the
http or https scheme. Backend policies may override the default TLS
configuration. Query parameters, fragments, and user info are not supported. | | Format: uri
MaxLength: 1024
MinLength: 1
Optional: \{\}
| +| `policies` _[ModelPolicies](#modelpolicies)_ | Policies applied to this concrete model. | | Optional: \{\}
| +| `virtualModel` _[VirtualModel](#virtualmodel)_ | Request-time routing among concrete AgentgatewayModel resources. | | ExactlyOneOf: [weighted failover conditional]
Optional: \{\}
| + + +#### AgentgatewayModelStatus + + + +Current attachment status for an AgentgatewayModel. + + + +_Appears in:_ +- [AgentgatewayModel](#agentgatewaymodel) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `parents` _RouteParentStatus array_ | Status for each Gateway parent to which this model is attached. | | MaxItems: 16
Optional: \{\}
| + + #### AgentgatewayParameters @@ -598,11 +687,12 @@ Configures CEL-based authorization. _Appears in:_ - [BackendMCP](#backendmcp) - [Frontend](#frontend) +- [ModelPolicies](#modelpolicies) - [Traffic](#traffic) | Field | Description | Default | Validation | | --- | --- | --- | --- | -| `policy` _[AuthorizationPolicy](#authorizationpolicy)_ | The authorization rule to evaluate.
* `Allow`: any matching allow rule allows the request.
* `Require`: every require rule must match for the request to be allowed.
* `Deny`: any matching deny rule denies the request.
A CEL expression that fails to evaluate does not match. Prefer `Require`
for deny-by-default behavior.
If at least one `Allow` rule is configured, requests are denied unless at
least one allow rule matches. | | Required: \{\}
| +| `policy` _[AuthorizationPolicy](#authorizationpolicy)_ | The authorization rule to evaluate.
* `Allow`: any matching allow rule allows the request.
* `Require`: every require rule must match for the request to be allowed.
* `Deny`: any matching deny rule denies the request.
`Deny` is not recommended because expression failures fail to deny; prefer
`Allow` or `Require`. If used, design expressions defensively against evaluation errors.
If at least one `Allow` rule is configured, requests are denied unless at
least one allow rule matches. | | Required: \{\}
| | `action` _[AuthorizationPolicyAction](#authorizationpolicyaction)_ | The effect of this rule when it matches.
If unspecified, defaults to `Allow`.
`Require` rules are cumulative: all require rules must match. | Allow | Optional: \{\}
| @@ -681,6 +771,7 @@ _Appears in:_ - [BackendAuth](#backendauth) - [BackendAuthCredential](#backendauthcredential) - [BedrockGuardrailsAuth](#bedrockguardrailsauth) +- [ModelBackendAuth](#modelbackendauth) - [OAuthTokenExchange](#oauthtokenexchange) - [OpenAIModerationAuth](#openaimoderationauth) @@ -811,6 +902,7 @@ AWS authentication settings for the backend. _Appears in:_ - [BackendAuth](#backendauth) - [BedrockGuardrailsAuth](#bedrockguardrailsauth) +- [ModelBackendAuth](#modelbackendauth) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -870,6 +962,7 @@ _Validation:_ _Appears in:_ - [BackendAuth](#backendauth) +- [ModelBackendAuth](#modelbackendauth) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -882,7 +975,7 @@ _Appears in:_ -Settings for Azure AI backends, supporting both Azure OpenAI and Azure AI Foundry. + @@ -894,9 +987,9 @@ _Appears in:_ | --- | --- | --- | --- | | `resourceName` _[ShortString](#shortstring)_ | The Azure resource name used to construct the endpoint host.
For OpenAI: \{resourceName\}.openai.azure.com
For Foundry: \{resourceName\}.services.ai.azure.com
Note: when the Azure portal "Foundry legacy" template was used, the
generated resource name may end in "-resource" (e.g. "myproject-resource");
that suffix is part of the resource name as the user configured it, not
part of the hostname suffix agentgateway should append. | | MaxLength: 256
MinLength: 1
Required: \{\}
| | `resourceType` _[AzureResourceType](#azureresourcetype)_ | The type of Azure endpoint. Determines the host suffix. | | Required: \{\}
| -| `model` _[ShortString](#shortstring)_ | Model name override, such as `gpt-4o-mini`.
If unset, the model name is taken from the request. | | MaxLength: 256
MinLength: 1
Optional: \{\}
| | `apiVersion` _[TinyString](#tinystring)_ | The version of the Azure OpenAI API to use.
If unset, defaults to `v1`. | | MaxLength: 64
MinLength: 1
Optional: \{\}
| | `projectName` _[ShortString](#shortstring)_ | The Foundry project name, required when `resourceType` is `Foundry`.
Used to construct paths: /api/projects/\{projectName\}/openai/v1/... | | MaxLength: 256
MinLength: 1
Optional: \{\}
| +| `model` _[ShortString](#shortstring)_ | Model name override, such as `gpt-4o-mini`.
If unset, the model name is taken from the request. | | MaxLength: 256
MinLength: 1
Optional: \{\}
| #### AzureManagedIdentity @@ -946,6 +1039,7 @@ Type of Azure endpoint. _Appears in:_ - [AzureConfig](#azureconfig) +- [AzureSettings](#azuresettings) | Field | Description | | --- | --- | @@ -953,6 +1047,26 @@ _Appears in:_ | `Foundry` | AzureResourceTypeFoundry uses the Azure AI Foundry endpoint: \{resourceName\}.services.ai.azure.com
| +#### AzureSettings + + + +Settings for Azure AI backends, supporting both Azure OpenAI and Azure AI Foundry. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) +- [AzureConfig](#azureconfig) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `resourceName` _[ShortString](#shortstring)_ | The Azure resource name used to construct the endpoint host.
For OpenAI: \{resourceName\}.openai.azure.com
For Foundry: \{resourceName\}.services.ai.azure.com
Note: when the Azure portal "Foundry legacy" template was used, the
generated resource name may end in "-resource" (e.g. "myproject-resource");
that suffix is part of the resource name as the user configured it, not
part of the hostname suffix agentgateway should append. | | MaxLength: 256
MinLength: 1
Required: \{\}
| +| `resourceType` _[AzureResourceType](#azureresourcetype)_ | The type of Azure endpoint. Determines the host suffix. | | Required: \{\}
| +| `apiVersion` _[TinyString](#tinystring)_ | The version of the Azure OpenAI API to use.
If unset, defaults to `v1`. | | MaxLength: 64
MinLength: 1
Optional: \{\}
| +| `projectName` _[ShortString](#shortstring)_ | The Foundry project name, required when `resourceType` is `Foundry`.
Used to construct paths: /api/projects/\{projectName\}/openai/v1/... | | MaxLength: 256
MinLength: 1
Optional: \{\}
| + + #### AzureWorkloadIdentity @@ -1029,6 +1143,7 @@ backend request. _Appears in:_ - [BackendAuth](#backendauth) +- [ModelBackendAuth](#modelbackendauth) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -1046,6 +1161,7 @@ _Appears in:_ _Appears in:_ - [BackendAuth](#backendauth) +- [ModelBackendAuth](#modelbackendauth) @@ -1083,7 +1199,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | -| `duration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Base time a backend should be evicted after being marked unhealthy.
Subsequent evictions use multiplicative backoff (duration * times_evicted).
If all endpoints are evicted, the load balancer falls back to returning evicted endpoints
rather than failing entirely.
If unset, defaults to `3s`. | 3s | Optional: \{\}
| +| `duration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Base time a backend should be evicted after being marked unhealthy.
Subsequent evictions use multiplicative backoff (duration * times_evicted).
If all endpoints are evicted, the load balancer falls back to returning evicted endpoints
rather than failing entirely.
If unset, defaults to `3s`. | 3s | MaxLength: 32
Type: string
Optional: \{\}
| | `restoreHealth` _integer_ | Health score from 0 to 100 assigned to a backend when it returns from eviction.
For gradual recovery, set below 100; for full recovery immediately, set 100.
If unset, the backend resumes with the health it had when evicted. | | Maximum: 100
Minimum: 0
Optional: \{\}
| | `consecutiveFailures` _integer_ | Number of consecutive unhealthy responses required before the backend is evicted.
For example, a value of 5 means the backend must receive 5 unhealthy responses in a row before being evicted.
When both consecutiveFailures and healthThreshold are set, the backend is evicted when either condition is met.
When neither is set, a single unhealthy response can trigger eviction. | | Minimum: 0
Optional: \{\}
| | `healthThreshold` _integer_ | EWMA health score threshold, from 0 to 100. When set, a backend is evicted
only if its computed health drops below this value after an unhealthy
response (e.g. 50 evicts when EWMA health falls below 50%). Unlike
consecutiveFailures, this sliding-window average lets a single success delay
eviction. If both are set, either condition evicts; if neither, a single
unhealthy response evicts. | | Maximum: 100
Minimum: 0
Optional: \{\}
| @@ -1135,7 +1251,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | | `version` _[HTTPVersion](#httpversion)_ | HTTP protocol version for backend connections. If unset, it is inferred:
`Service` appProtocol, `HTTP2` for gRPC, the original protocol for
plaintext HTTP, or `HTTP1` for HTTPS because clients often upgrade HTTPS
to HTTP/2 even when the backend does not support it. | | Optional: \{\}
| -| `requestTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Deadline for receiving a response from the backend. | | Optional: \{\}
| +| `requestTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Deadline for receiving a response from the backend. | | MaxLength: 32
Type: string
Optional: \{\}
| #### BackendMCP @@ -1198,7 +1314,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | | `keepalive` _[Keepalive](#keepalive)_ | Settings for enabling TCP keepalives on the
connection. | | Optional: \{\}
| -| `connectTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Deadline for establishing a connection to
the destination. | | Optional: \{\}
| +| `connectTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Deadline for establishing a connection to
the destination. | | MaxLength: 32
Type: string
Optional: \{\}
| #### BackendTLS @@ -1217,6 +1333,7 @@ _Appears in:_ - [BackendWithAI](#backendwithai) - [BedrockGuardrailsPolicy](#bedrockguardrailspolicy) - [GoogleModelArmorPolicy](#googlemodelarmorpolicy) +- [ModelPolicies](#modelpolicies) - [OpenAIModerationPolicy](#openaimoderationpolicy) | Field | Description | Default | Validation | @@ -1245,6 +1362,7 @@ _Appears in:_ - [BackendWithAI](#backendwithai) - [BedrockGuardrailsPolicy](#bedrockguardrailspolicy) - [GoogleModelArmorPolicy](#googlemodelarmorpolicy) +- [ModelPolicies](#modelpolicies) - [OpenAIModerationPolicy](#openaimoderationpolicy) | Field | Description | Default | Validation | @@ -1328,8 +1446,8 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | | `region` _string_ | AWS region to use for the backend.
Defaults to `us-east-1` if not specified. | us-east-1 | MaxLength: 63
MinLength: 1
Pattern: `^[a-z0-9-]+$`
Optional: \{\}
| -| `model` _[ShortString](#shortstring)_ | Model name override, such as `gpt-4o-mini`.
If unset, the model name is taken from the request. | | MaxLength: 256
MinLength: 1
Optional: \{\}
| | `guardrail` _[AWSGuardrailConfig](#awsguardrailconfig)_ | Guardrail policy to use for the backend. See
.
If not specified, the AWS Guardrail policy will not be used. | | Optional: \{\}
| +| `model` _[ShortString](#shortstring)_ | Model name override, such as `gpt-4o-mini`.
If unset, the model name is taken from the request. | | MaxLength: 256
MinLength: 1
Optional: \{\}
| #### BedrockGuardrails @@ -1392,6 +1510,24 @@ _Appears in:_ | `auth` _[BedrockGuardrailsAuth](#bedrockguardrailsauth)_ | Settings for authenticating to AWS Bedrock Guardrails. | | ExactlyOneOf: [key secretRef aws]
Optional: \{\}
| +#### BedrockSettings + + + + + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) +- [BedrockConfig](#bedrockconfig) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `region` _string_ | AWS region to use for the backend.
Defaults to `us-east-1` if not specified. | us-east-1 | MaxLength: 63
MinLength: 1
Pattern: `^[a-z0-9-]+$`
Optional: \{\}
| +| `guardrail` _[AWSGuardrailConfig](#awsguardrailconfig)_ | Guardrail policy to use for the backend. See
.
If not specified, the AWS Guardrail policy will not be used. | | Optional: \{\}
| + + #### BodySendMode _Underlying type:_ _string_ @@ -1505,6 +1641,7 @@ _Appears in:_ - [AuthorizationPolicy](#authorizationpolicy) - [AwsAssumeRole](#awsassumerole) - [AwsSessionTag](#awssessiontag) +- [ConditionalModelTarget](#conditionalmodeltarget) - [Delay](#delay) - [DirectResponse](#directresponse) - [DirectResponseConditional](#directresponseconditional) @@ -1586,6 +1723,40 @@ _Appears in:_ | `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256` | | +#### ConditionalModelRouting + + + + + + + +_Appears in:_ +- [VirtualModel](#virtualmodel) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `targets` _[ConditionalModelTarget](#conditionalmodeltarget) array_ | Concrete model targets evaluated in order. The first matching condition is
selected. One final target may omit when to act as the fallback. | | MaxItems: 64
MinItems: 1
Required: \{\}
| + + +#### ConditionalModelTarget + + + + + + + +_Appears in:_ +- [ConditionalModelRouting](#conditionalmodelrouting) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `modelRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core)_ | Same-namespace AgentgatewayModel resource selected by this target. | | Required: \{\}
| +| `model` _[LongString](#longstring)_ | Concrete model name selected through the referenced model. It is required
when modelRef points to a wildcard match.model. When omitted, the referenced
model's exact effective match.model is used. | | MaxLength: 1024
MinLength: 1
Optional: \{\}
| +| `when` _[CELExpression](#celexpression)_ | CEL expression that must evaluate to true for this target to be selected.
Omit only on the final fallback target. | | MaxLength: 16384
MinLength: 1
Optional: \{\}
| + + @@ -1667,9 +1838,6 @@ _Appears in:_ Provider with explicit API format support and an explicit target. -Use this for local, self-hosted, or OpenAI-compatible providers whose -supported request/response formats are not fully described by the managed -provider types. @@ -1680,7 +1848,28 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | | `backendRef` _[LocalBackendObjectReference](#localbackendobjectreference)_ | Kubernetes backend that serves this provider.
`backendRef` may target only a namespace-local Service or InferencePool.
If unset, host and port must be set on the parent provider. | | Optional: \{\}
| +| `formats` _[ProviderFormatConfig](#providerformatconfig) array_ | Provider-native API formats this provider supports. | | MaxItems: 6
MinItems: 1
Required: \{\}
| | `model` _[ShortString](#shortstring)_ | Model name override, such as `gpt-oss`.
If unset, the model name is taken from the request. | | MaxLength: 256
MinLength: 1
Optional: \{\}
| + + +#### CustomProviderSettings + + + +Provider settings with explicit API format support and an explicit target. +Use this for local, self-hosted, or OpenAI-compatible providers whose +supported request/response formats are not fully described by the managed +provider types. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) +- [CustomProvider](#customprovider) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `backendRef` _[LocalBackendObjectReference](#localbackendobjectreference)_ | Kubernetes backend that serves this provider.
`backendRef` may target only a namespace-local Service or InferencePool.
If unset, host and port must be set on the parent provider. | | Optional: \{\}
| | `formats` _[ProviderFormatConfig](#providerformatconfig) array_ | Provider-native API formats this provider supports. | | MaxItems: 6
MinItems: 1
Required: \{\}
| @@ -1966,6 +2155,40 @@ _Appears in:_ | `conditional` _[ExtProcConditional](#extprocconditional) array_ | Conditional policy execution. Set this or the top-level extProc fields.
The first matching policy will be executed.
A single policy may be provided without a condition set; if so, it must be the last policy and will be the fallback
in case no conditions are met. | | MaxItems: 16
MinItems: 1
Optional: \{\}
| +#### FailoverModelRouting + + + + + + + +_Appears in:_ +- [VirtualModel](#virtualmodel) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `targets` _[FailoverModelTarget](#failovermodeltarget) array_ | Concrete model targets grouped by priority. Lower values are preferred. | | MaxItems: 64
MinItems: 1
Required: \{\}
| + + +#### FailoverModelTarget + + + + + + + +_Appears in:_ +- [FailoverModelRouting](#failovermodelrouting) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `modelRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core)_ | Same-namespace AgentgatewayModel resource selected by this target. | | Required: \{\}
| +| `model` _[LongString](#longstring)_ | Concrete model name selected through the referenced model. It is required
when modelRef points to a wildcard match.model. When omitted, the referenced
model's exact effective match.model is used. | | MaxLength: 1024
MinLength: 1
Optional: \{\}
| +| `priority` _integer_ | Priority of this target. Lower values are preferred. Targets at the same
priority are selected using a score that considers health and latency. The
next priority is used only when every target at this priority is degraded.
Configure policies.health on concrete target models to customize
degradation and eviction behavior. | | Maximum: 1e+06
Minimum: 0
Required: \{\}
| + + #### FailureMode _Underlying type:_ _string_ @@ -2051,6 +2274,7 @@ is assigned to the configured field. _Appears in:_ - [BackendAI](#backendai) +- [ModelPolicies](#modelpolicies) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -2131,15 +2355,15 @@ _Appears in:_ | --- | --- | --- | --- | | `maxBufferSize` _[ByteSize](#bytesize)_ | Maximum HTTP body size that will be buffered
into memory.
Bodies will only be buffered for policies which require buffering.
If unset, this defaults to `2mb`. | | MaxLength: 32
MinLength: 1
Pattern: `^[+-]?([0-9]+(\.[0-9]*)?\|\.[0-9]+)(([KMGTPE]i)\|[numkMGTPE]\|[eE](\+?0*([0-9]\|1[0-8])\|-0*[0-9]))?$`
XIntOrString: \{\}
Optional: \{\}
| | `http1MaxHeaders` _integer_ | Maximum number of headers allowed
in `HTTP/1.1` requests.
If unset, this defaults to 100. | | Maximum: 4096
Minimum: 1
Optional: \{\}
| -| `http1IdleTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Timeout before an unused connection is
closed.
If unset, this defaults to 10 minutes. | | Optional: \{\}
| +| `http1IdleTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Timeout before an unused connection is
closed.
If unset, this defaults to 10 minutes. | | MaxLength: 32
Type: string
Optional: \{\}
| | `http1HeaderCase` _[HTTPHeaderCase](#httpheadercase)_ | Controls HTTP/1 request header name casing when encoding responses on the same connection.
This only applies to `HTTP/1`. If a request is HTTP/2 in either the incoming or outgoing request, this will be ignored.
HTTP/2 requests are always lower case.
Modifying the headers from other policies may result in the original case being lost. | | Optional: \{\}
| | `http2WindowSize` _[ByteSize](#bytesize)_ | Initial window size for stream-level flow
control for received data. | | MaxLength: 32
MinLength: 1
Pattern: `^[+-]?([0-9]+(\.[0-9]*)?\|\.[0-9]+)(([KMGTPE]i)\|[numkMGTPE]\|[eE](\+?0*([0-9]\|1[0-8])\|-0*[0-9]))?$`
XIntOrString: \{\}
Optional: \{\}
| | `http2ConnectionWindowSize` _[ByteSize](#bytesize)_ | Initial window size for
connection-level flow control for received data. | | MaxLength: 32
MinLength: 1
Pattern: `^[+-]?([0-9]+(\.[0-9]*)?\|\.[0-9]+)(([KMGTPE]i)\|[numkMGTPE]\|[eE](\+?0*([0-9]\|1[0-8])\|-0*[0-9]))?$`
XIntOrString: \{\}
Optional: \{\}
| | `http2FrameSize` _[ByteSize](#bytesize)_ | Maximum frame size to use.
If unset, this defaults to `16kb`. | | MaxLength: 32
MinLength: 1
Pattern: `^[+-]?([0-9]+(\.[0-9]*)?\|\.[0-9]+)(([KMGTPE]i)\|[numkMGTPE]\|[eE](\+?0*([0-9]\|1[0-8])\|-0*[0-9]))?$`
XIntOrString: \{\}
Optional: \{\}
| | `http2MaxHeaderSize` _[ByteSize](#bytesize)_ | Maximum aggregate size of decoded HTTP/2
request headers.
If unset, this defaults to `16Ki`. | | MaxLength: 32
MinLength: 1
Pattern: `^[+-]?([0-9]+(\.[0-9]*)?\|\.[0-9]+)(([KMGTPE]i)\|[numkMGTPE]\|[eE](\+?0*([0-9]\|1[0-8])\|-0*[0-9]))?$`
XIntOrString: \{\}
Optional: \{\}
| -| `http2KeepaliveInterval` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | | | Optional: \{\}
| -| `http2KeepaliveTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | | | Optional: \{\}
| -| `maxConnectionDuration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Maximum time a connection is allowed to remain open.
After this duration, the connection is gracefully closed after the current in-flight request completes.
Useful for ensuring even traffic distribution behind load balancers during scaling events. | | Optional: \{\}
| +| `http2KeepaliveInterval` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | | | MaxLength: 32
Type: string
Optional: \{\}
| +| `http2KeepaliveTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | | | MaxLength: 32
Type: string
Optional: \{\}
| +| `maxConnectionDuration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Maximum time a connection is allowed to remain open.
After this duration, the connection is gracefully closed after the current in-flight request completes.
Useful for ensuring even traffic distribution behind load balancers during scaling events. | | MaxLength: 32
Type: string
Optional: \{\}
| #### FrontendProxyProtocol @@ -2188,7 +2412,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | -| `handshakeTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Deadline for a TLS handshake to
complete. If unset, this defaults to `15s`. | | Optional: \{\}
| +| `handshakeTimeout` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Deadline for a TLS handshake to
complete. If unset, this defaults to `15s`. | | MaxLength: 32
Type: string
Optional: \{\}
| | `alpnProtocols` _[TinyString](#tinystring)_ | Application-Layer Protocol Negotiation (`ALPN`)
value to use in the TLS handshake.
If not present, defaults to `["h2", "http/1.1"]`. | | MaxItems: 16
MaxLength: 64
MinItems: 1
MinLength: 1
Optional: \{\}
| | `minProtocolVersion` _[TLSVersion](#tlsversion)_ | Minimum TLS version to support. | | Optional: \{\}
| | `maxProtocolVersion` _[TLSVersion](#tlsversion)_ | Maximum TLS version to support. | | Optional: \{\}
| @@ -2207,6 +2431,7 @@ Google Cloud authentication settings. _Appears in:_ - [BackendAuth](#backendauth) - [GoogleModelArmorAuth](#googlemodelarmorauth) +- [ModelBackendAuth](#modelbackendauth) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -2385,6 +2610,7 @@ Modifies request and response headers. _Appears in:_ +- [ModelPolicies](#modelpolicies) - [Traffic](#traffic) | Field | Description | Default | Validation | @@ -2456,6 +2682,7 @@ _Appears in:_ _Appears in:_ - [BackendFull](#backendfull) - [BackendWithAI](#backendwithai) +- [ModelPolicies](#modelpolicies) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -2664,8 +2891,8 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | | `retries` _integer_ | Maximum number of keepalive probes to send before dropping the connection.
If unset, this defaults to 9. | | Maximum: 64
Minimum: 1
Optional: \{\}
| -| `time` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Time a connection needs to be idle before keepalive probes start being sent.
If unset, this defaults to 180s. | | Optional: \{\}
| -| `interval` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Time between keepalive probes.
If unset, this defaults to 180s. | | Optional: \{\}
| +| `time` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Time a connection needs to be idle before keepalive probes start being sent.
If unset, this defaults to 180s. | | MaxLength: 32
Type: string
Optional: \{\}
| +| `interval` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Time between keepalive probes.
If unset, this defaults to 180s. | | MaxLength: 32
Type: string
Optional: \{\}
| #### KeyExchangeGroup @@ -2762,6 +2989,7 @@ References a namespace-local backend resource. _Appears in:_ - [CustomProvider](#customprovider) +- [CustomProviderSettings](#customprovidersettings) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -2809,7 +3037,7 @@ _Appears in:_ | `group` _[Group](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#group)_ | The API group of the target resource.
For Kubernetes Gateway API resources, the group is `gateway.networking.k8s.io`. | | MaxLength: 253
Pattern: `^$\|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
Required: \{\}
| | `kind` _[Kind](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#kind)_ | The API kind of the target resource, such as `Gateway` or `HTTPRoute`. | | MaxLength: 63
MinLength: 1
Pattern: `^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`
Required: \{\}
| | `name` _[ObjectName](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#objectname)_ | The name of the target resource. | | Required: \{\}
| -| `sectionName` _[SectionName](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#sectionname)_ | The named section of the target resource. | | Optional: \{\}
| +| `sectionName` _[SectionName](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#sectionname)_ | The named section of the target resource. | | MaxLength: 253
MinLength: 1
Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
Optional: \{\}
| | `port` _integer_ | The port of the target resource this policy applies to.
At most one of `sectionName` or `port` may be set.
Only valid on frontend policies targeting a `Gateway`. | | Maximum: 65535
Minimum: 1
Optional: \{\}
| @@ -2855,7 +3083,7 @@ _Appears in:_ | `group` _[Group](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#group)_ | The API group of the target resource.
For Kubernetes Gateway API resources, the group is `gateway.networking.k8s.io`. | | MaxLength: 253
Pattern: `^$\|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
Required: \{\}
| | `kind` _[Kind](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#kind)_ | The API kind of the target resource, such as `Gateway` or `HTTPRoute`. | | MaxLength: 63
MinLength: 1
Pattern: `^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`
Required: \{\}
| | `matchLabels` _object (keys:string, values:string)_ | Labels that must be present on each selected target resource. | | Required: \{\}
| -| `sectionName` _[SectionName](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#sectionname)_ | The named section of each selected target resource. | | Optional: \{\}
| +| `sectionName` _[SectionName](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#sectionname)_ | The named section of each selected target resource. | | MaxLength: 253
MinLength: 1
Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
Optional: \{\}
| | `port` _integer_ | The port of each selected target resource this policy applies to.
At most one of `sectionName` or `port` may be set.
Only valid on frontend policies targeting a `Gateway`. | | Maximum: 65535
Minimum: 1
Optional: \{\}
| @@ -2916,6 +3144,7 @@ _Appears in:_ - [BedrockGuardrailsAuth](#bedrockguardrailsauth) - [GcpAuth](#gcpauth) - [MCPAuthentication](#mcpauthentication) +- [ModelBackendAuth](#modelbackendauth) - [OAuthClientAuth](#oauthclientauth) - [OAuthPrivateKeyJWT](#oauthprivatekeyjwt) - [OpenAIModerationAuth](#openaimoderationauth) @@ -3233,6 +3462,31 @@ _Appears in:_ | `attributes` _[MetricAttributes](#metricattributes)_ | Customizations to the labels that are
added to Prometheus metrics. | | Required: \{\}
| +#### ModelBackendAuth + + + +ModelBackendAuth configures credentials for a model provider. + +_Validation:_ +- AtMostOneOf: [key secretRef passthrough aws azure gcp oauthTokenExchange] + +_Appears in:_ +- [ModelPolicies](#modelpolicies) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `key` _string_ | Inline key to use as the value of the `Authorization` header. This option
is the least secure; usage of a `Secret` is preferred. | | MaxLength: 2048
Optional: \{\}
| +| `secretRef` _[LocalSecretKeyRef](#localsecretkeyref)_ | Credential source for the authorization value, defaulting to a Kubernetes
`Secret`. By default, the value is read from the `Authorization` key; set
`secretRef.key` to override it. A `Bearer ` prefix is stripped only from
the default `Authorization` key. | | Optional: \{\}
| +| `passthrough` _[BackendAuthPassthrough](#backendauthpassthrough)_ | Reuses a client token already validated by another policy. Those policies
may strip client credentials; passthrough adds the original token back to
the backend request. Without client auth policies, this has no effect. | | Optional: \{\}
| +| `aws` _[AwsAuth](#awsauth)_ | Explicit AWS authentication method for the model provider. When omitted,
default AWS SDK credential discovery is used. | | Optional: \{\}
| +| `azure` _[AzureAuth](#azureauth)_ | Azure authentication method for the model provider. | | AtMostOneOf: [secretRef managedIdentity workloadIdentity]
Optional: \{\}
| +| `gcp` _[GcpAuth](#gcpauth)_ | Google authentication method for the model provider. When omitted,
default Google credential discovery is used. | | Optional: \{\}
| +| `oauthTokenExchange` _[OAuthTokenExchange](#oauthtokenexchange)_ | OAuth 2.0 token exchange (RFC 8693) / jwt-bearer (RFC 7523)
authentication. | | Optional: \{\}
| +| `location` _[AuthorizationLocation](#authorizationlocation)_ | Where backend credentials are inserted. If omitted, credentials are
written to the `Authorization` header with the `Bearer ` prefix. This
applies to `key`, `secretRef`, and `passthrough`. Entries in
`credentials` carry their own location. | | ExactlyOneOf: [header queryParameter cookie]
Optional: \{\}
| +| `credentials` _[BackendAuthCredential](#backendauthcredential) array_ | Credentials is a list of additional credentials to inject on the backend
request. Each entry resolves a Secret key and writes its value to the
entry's location. `credentials` is independent of the primary
`key`/`secretRef`/`passthrough` mechanism and may be set on its own or
alongside it. | | MaxItems: 8
MinItems: 1
Optional: \{\}
| + + #### ModelCatalogConfigMapRef @@ -3284,6 +3538,116 @@ _Appears in:_ | `sources` _[ModelCatalogSource](#modelcatalogsource) array_ | | | Optional: \{\}
| +#### ModelMatch + + + +ModelMatch contains conditions for selecting a model. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `model` _[LongString](#longstring)_ | Model name matched against client requests. It may be exact, a suffix
wildcard such as `gpt-*`, a prefix wildcard such as `*-latest`, or `*`.
When omitted, the model matches metadata.name exactly. | | MaxLength: 1024
MinLength: 1
Optional: \{\}
| + + +#### ModelPolicies + + + +ModelPolicies configures a concrete model. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `transformations` _[FieldTransformation](#fieldtransformation) array_ | CEL transformations applied to fields in the provider request body. | | MaxItems: 64
MinItems: 1
Optional: \{\}
| +| `authorization` _[Authorization](#authorization)_ | Authorization rules that clients must satisfy to use this model. | | Optional: \{\}
| +| `auth` _[ModelBackendAuth](#modelbackendauth)_ | Credentials used to authenticate requests to this model provider. | | AtMostOneOf: [key secretRef passthrough aws azure gcp oauthTokenExchange]
Optional: \{\}
| +| `health` _[Health](#health)_ | Health checking and eviction behavior for this model provider. | | Optional: \{\}
| +| `tls` _[BackendTLS](#backendtls)_ | TLS settings for connections to this model provider. | | AtMostOneOf: [verifySubjectAltNames insecureSkipVerify]
Optional: \{\}
| +| `tunnel` _[BackendTunnel](#backendtunnel)_ | Proxy tunnel used to reach this model provider. | | Optional: \{\}
| +| `headers` _[HeaderModifiers](#headermodifiers)_ | Request and response header changes applied to provider traffic. | | Optional: \{\}
| +| `promptGuard` _[AIPromptGuard](#aipromptguard)_ | Guardrails for requests and responses sent to this model provider. | | Optional: \{\}
| + + +#### ModelProvider + +_Underlying type:_ _string_ + +ModelProvider identifies the LLM provider serving a concrete model. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) + +| Field | Description | +| --- | --- | +| `OpenAI` | | +| `Azure` | | +| `Anthropic` | | +| `Gemini` | | +| `VertexAI` | | +| `Bedrock` | | +| `Cohere` | | +| `Ollama` | | +| `Baseten` | | +| `Cerebras` | | +| `Deepinfra` | | +| `Deepseek` | | +| `Groq` | | +| `Huggingface` | | +| `Mistral` | | +| `Openrouter` | | +| `TogetherAI` | | +| `XAI` | | +| `Fireworks` | | +| `Custom` | | + + +#### ModelTargetReference + + + + + + + +_Appears in:_ +- [ConditionalModelTarget](#conditionalmodeltarget) +- [FailoverModelTarget](#failovermodeltarget) +- [WeightedModelTarget](#weightedmodeltarget) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `modelRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core)_ | Same-namespace AgentgatewayModel resource selected by this target. | | Required: \{\}
| +| `model` _[LongString](#longstring)_ | Concrete model name selected through the referenced model. It is required
when modelRef points to a wildcard match.model. When omitted, the referenced
model's exact effective match.model is used. | | MaxLength: 1024
MinLength: 1
Optional: \{\}
| + + +#### ModelVisibility + +_Underlying type:_ _string_ + +Visibility of a model to direct client requests. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) + +| Field | Description | +| --- | --- | +| `Public` | ModelVisibilityPublic allows direct client requests and includes the model
in model discovery responses.
| +| `Internal` | ModelVisibilityInternal allows selection only by virtual models.
| + + #### NamedLLMProvider @@ -3502,6 +3866,7 @@ OAuth token exchange settings for backend authentication. _Appears in:_ - [BackendAuth](#backendauth) +- [ModelBackendAuth](#modelbackendauth) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -3950,6 +4315,7 @@ Provider-native LLM API format settings. _Appears in:_ - [CustomProvider](#customprovider) +- [CustomProviderSettings](#customprovidersettings) | Field | Description | Default | Validation | | --- | --- | --- | --- | @@ -4130,7 +4496,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | | `jwksPath` _string_ | Path to the IdP `jwks` endpoint, relative to the root, commonly
`".well-known/jwks.json"`. | | MaxLength: 2000
MinLength: 1
Required: \{\}
| -| `cacheDuration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | | 5m | Optional: \{\}
| +| `cacheDuration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | | 5m | MaxLength: 32
Type: string
Optional: \{\}
| | `backendRef` _[BackendObjectReference](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#backendobjectreference)_ | Remote JWKS server to reach.
Supported types are `Service` and static `Backend`. An
`AgentgatewayPolicy` containing backend TLS config can then be attached
to the `Service` or `Backend` in order to set TLS options for a
connection to the remote `jwks` source. | | Required: \{\}
| @@ -4297,7 +4663,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | -| `request` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Timeout for an individual request from the gateway to a backend. This covers the time from when
the request first starts being sent from the gateway to when the full response has been received from the backend. | | Optional: \{\}
| +| `request` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | Timeout for an individual request from the gateway to a backend. This covers the time from when
the request first starts being sent from the gateway to when the full response has been received from the backend. | | MaxLength: 32
Type: string
Optional: \{\}
| @@ -4454,7 +4820,7 @@ _Appears in:_ -Settings for the [Vertex AI](https://docs.cloud.google.com/gemini-enterprise-agent-platform) LLM provider. + @@ -4464,11 +4830,48 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | +| `projectId` _[TinyString](#tinystring)_ | The ID of the Google Cloud Project that you use for the Vertex AI. | | MaxLength: 64
MinLength: 1
Required: \{\}
| +| `region` _[TinyString](#tinystring)_ | The location of the Google Cloud Project that you use for the Vertex AI.
Special values: `global` uses the global endpoint, while `us` and `eu` use restricted
multi-region endpoints. Other values are treated as regional locations.
Defaults to `global` if not specified. | global | MaxLength: 64
MinLength: 1
Optional: \{\}
| | `model` _[ShortString](#shortstring)_ | Model name override, such as `gpt-4o-mini`.
If unset, the model name is taken from the request. | | MaxLength: 256
MinLength: 1
Optional: \{\}
| + + +#### VertexAISettings + + + +Settings for the [Vertex AI](https://docs.cloud.google.com/gemini-enterprise-agent-platform) LLM provider. + + + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) +- [VertexAIConfig](#vertexaiconfig) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | | `projectId` _[TinyString](#tinystring)_ | The ID of the Google Cloud Project that you use for the Vertex AI. | | MaxLength: 64
MinLength: 1
Required: \{\}
| | `region` _[TinyString](#tinystring)_ | The location of the Google Cloud Project that you use for the Vertex AI.
Special values: `global` uses the global endpoint, while `us` and `eu` use restricted
multi-region endpoints. Other values are treated as regional locations.
Defaults to `global` if not specified. | global | MaxLength: 64
MinLength: 1
Optional: \{\}
| +#### VirtualModel + + + + + +_Validation:_ +- ExactlyOneOf: [weighted failover conditional] + +_Appears in:_ +- [AgentgatewayModelSpec](#agentgatewaymodelspec) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `weighted` _[WeightedModelRouting](#weightedmodelrouting)_ | Weight-based model selection. | | Optional: \{\}
| +| `failover` _[FailoverModelRouting](#failovermodelrouting)_ | Priority-based model selection with failover between priority groups. | | Optional: \{\}
| +| `conditional` _[ConditionalModelRouting](#conditionalmodelrouting)_ | Ordered condition-based model selection. | | Optional: \{\}
| + + #### Webhook @@ -4488,6 +4891,40 @@ _Appears in:_ | `failureMode` _[FailureMode](#failuremode)_ | Behavior when the webhook guardrail is unavailable
or returns an error. `FailOpen` allows the request to continue.
`FailClosed` (default) rejects the request. | | Optional: \{\}
| +#### WeightedModelRouting + + + + + + + +_Appears in:_ +- [VirtualModel](#virtualmodel) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `targets` _[WeightedModelTarget](#weightedmodeltarget) array_ | Concrete model targets and their relative weights. | | MaxItems: 64
MinItems: 1
Required: \{\}
| + + +#### WeightedModelTarget + + + + + + + +_Appears in:_ +- [WeightedModelRouting](#weightedmodelrouting) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `modelRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core)_ | Same-namespace AgentgatewayModel resource selected by this target. | | Required: \{\}
| +| `model` _[LongString](#longstring)_ | Concrete model name selected through the referenced model. It is required
when modelRef points to a wildcard match.model. When omitted, the referenced
model's exact effective match.model is used. | | MaxLength: 1024
MinLength: 1
Optional: \{\}
| +| `weight` _integer_ | Relative traffic weight. Defaults to 1. | 1 | Maximum: 1e+06
Minimum: 1
Optional: \{\}
| + + ## Shared Types diff --git a/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaybackends.yaml.html b/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaybackends.yaml.html index 7c8add4a1..aab2fdfa7 100644 --- a/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaybackends.yaml.html +++ b/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaybackends.yaml.html @@ -2695,14 +2695,14 @@ - + - + - + - + @@ -2737,14 +2737,14 @@ - + - + - + - + @@ -2785,14 +2785,14 @@ - + - + - + - + @@ -2866,14 +2866,14 @@ - + - + - + - + @@ -2908,14 +2908,14 @@ - + - + - + - + @@ -3161,19 +3161,19 @@ - + - + - + - + - + @@ -3488,14 +3488,14 @@ - + - + - + - + @@ -3575,14 +3575,14 @@ - + - + - + - + @@ -3617,14 +3617,14 @@ - + - + - + - + @@ -3665,14 +3665,14 @@ - + - + - + - + @@ -3746,14 +3746,14 @@ - + - + - + - + @@ -3788,14 +3788,14 @@ - + - + - + - + @@ -4066,12 +4066,12 @@ - + - + @@ -4090,14 +4090,14 @@ - + - + @@ -4114,11 +4114,11 @@ - + - + - + diff --git a/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaymodels.yaml.html b/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaymodels.yaml.html new file mode 100644 index 000000000..6e9e786e8 --- /dev/null +++ b/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaymodels.yaml.html @@ -0,0 +1,3285 @@ + +
+ + + + diff --git a/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaypolicies.yaml.html b/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaypolicies.yaml.html index 5e84105aa..cf34f4309 100644 --- a/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaypolicies.yaml.html +++ b/assets/agw-docs/pages/reference/api/main/agentgateway.dev_agentgatewaypolicies.yaml.html @@ -1960,14 +1960,14 @@ - + - + - + - + @@ -2002,14 +2002,14 @@ - + - + - + - + @@ -2050,14 +2050,14 @@ - + - + - + - + @@ -2131,14 +2131,14 @@ - + - + - + - + @@ -2173,14 +2173,14 @@ - + - + - + - + @@ -2451,12 +2451,12 @@ - + - + @@ -2475,14 +2475,14 @@ - + - + @@ -2499,11 +2499,11 @@ - + - + - + @@ -2571,16 +2571,16 @@ - + - - + + - + @@ -2588,20 +2588,20 @@ - + - + - + - + @@ -2705,7 +2705,7 @@ - + @@ -2906,7 +2906,7 @@ - + @@ -2960,7 +2960,7 @@ - + diff --git a/assets/agw-docs/pages/reference/cel/main/cel-context.html b/assets/agw-docs/pages/reference/cel/main/cel-context.html index 0a418ffce..007a6578a 100644 --- a/assets/agw-docs/pages/reference/cel/main/cel-context.html +++ b/assets/agw-docs/pages/reference/cel/main/cel-context.html @@ -504,159 +504,166 @@
  • versionstring
  • headersobject
  • bodystring
  • -
  • startTimestring
  • -
  • endTimestring
  • +
  • bodyPrefixstring
  • +
  • startTimestring
  • +
  • endTimestring
  • -
  • response