// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Do not edit this file manually. See README.chromium for details on
// how to edit this file.

syntax = 'proto3';

option optimize_for = LITE_RUNTIME;
option java_package = 'org.chromium.components.omnibox';
option java_outer_classname = 'ModelConfigProto';

package omnibox;
import "model_rule.proto";
import "icon.proto";
import "model_mode.proto";
import "url_param.proto";

// Configuration for a model mode.
// Next ID: 10
// LINT.IfChange(ModelConfig)
message ModelConfig {
  // The model mode.
  // Note: Clients should use the *Value accessor variant (e.g. getModelValue())
  // rather than enum accessors to be future-proof against new open enum values
  // served by the backend without requiring client updates.
  ModelMode model = 1;
  // The label for the model in a menu.
  string menu_label = 2;
  // The hint text in the input text field when this model is selected.
  string hint_text = 3;
  // The constraint rule for the model.
  optional ModelRule rule = 4;
  // The URL params to be appended to the /search URL when this model is chosen.
  repeated UrlParam aim_url_params = 5;
  // The icon for the model.
  optional Icon icon = 6;

  // Optional tooltip for the model in a menu.
  string menu_tooltip = 9;
}
// LINT.ThenChange(//components/omnibox/composebox/composebox_query.mojom:ModelConfig)
