// Copyright © Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT namespace hipdnn_flatbuffers_sdk.data_objects; table IntValue { value: int64; } table FloatValue { value: float64; } table StringValue { value: string; } // Union of possible knob value types union KnobValue { IntValue, FloatValue, StringValue, } table IntConstraint { min_value: int64; max_value: int64; step: int64 = 1; // Step size (default 1) valid_values: [int64]; // Optional: explicit list of valid values } table FloatConstraint { min_value: float64; max_value: float64; } table StringConstraint { max_length: int32; // Maximum string length valid_values: [string]; // Optional: enum-like string choices } // Type-specific constraint union KnobConstraint { IntConstraint, FloatConstraint, StringConstraint, } // Knob metadata table Knob { knob_id: string; // Unique identifier (namespaced by plugin) description: string; // Help text default_value: KnobValue (required); // Default setting - must be provided (not NONE) constraint: KnobConstraint; // Validation rules - may be NONE (unconstrained) deprecated: bool; // Allow knob deprecation }