# Model-to-upstream resolution
#
# Map a stable public model ID to an existing upstream cluster and target model.
# Unmapped models and paths use the fallback backend without a body rewrite.
# Responses retain the target model unless a provider response adapter restores
# the public ID. Cluster application-provider metadata is optional for routing.
#
# Usage:
#   cargo run -p praxis-ai-proxy -- -c examples/configs/model-to-provider.yaml
listeners:
  - name: model-to-provider
    address: "127.0.0.1:8080"
    filter_chains:
      - mapped-model

filter_chains:
  - name: mapped-model
    filters:
      - filter: model_to_provider
        fallback_upstream: fallback
        models:
          - model: claude-sonnet-4-5
            upstream: vertex
            target_model: claude-sonnet-4-5@20250929
            paths:
              - /v1/messages
              - /v1/messages/count_tokens
      - filter: load_balancer
        clusters:
          - name: vertex
            endpoints:
              - "127.0.0.1:9001"
          - name: fallback
            endpoints:
              - "127.0.0.1:9002"

insecure_options:
  allow_private_endpoints: true
