Complete type definitions for AutoRest configuration supporting all AutoRest features and extensions.
interface AutorestConfiguration extends AutorestNormalizedConfiguration {
raw: AutorestNormalizedConfiguration;
configFileFolderUri: string;
inputFileUris: string[];
outputFolderUri: string;
configurationFiles: string[];
help: boolean;
verbose: boolean;
debug: boolean;
cachingEnabled: boolean;
}The main configuration interface that extends normalized configuration with processed values and metadata.
Properties:
raw: AutorestNormalizedConfiguration - Original raw configuration used to build this configconfigFileFolderUri: string - URI of the configuration file folderinputFileUris: string[] - Processed input file URIsoutputFolderUri: string - Processed output folder URIconfigurationFiles: string[] - List of configuration files used to create this confighelp: boolean - Whether help was requestedverbose: boolean - Whether logging should be verbosedebug: boolean - Whether running in debug modecachingEnabled: boolean - Whether caching is enabledinterface AutorestNormalizedConfiguration extends AutorestRawConfigurationAlias {
__status?: any;
__parents?: any | undefined;
version?: string;
"allow-no-input"?: boolean;
"input-file"?: Array<string>;
"exclude-file"?: Array<string>;
"base-folder"?: string;
directive?: Array<Directive>;
"declare-directive"?: { [name: string]: string };
"output-artifact"?: Array<string>;
"message-format"?: "json" | "regular";
use?: string[] | string;
"use-extension"?: { [extensionName: string]: string };
require?: Array<string>;
"try-require"?: Array<string>;
help?: any;
"pass-thru"?: any[];
"disable-validation"?: boolean;
cache?: any;
vscode?: any;
stats?: boolean;
interactive?: boolean;
"skip-semantics-validation"?: boolean;
"override-info"?: any;
}Represents raw configuration provided by the user through config blocks, CLI arguments, etc.
Core Properties:
version?: string - Version of @autorest/core"allow-no-input"?: boolean - Allow running without input files"input-file"?: Array<string> - Input specification files"exclude-file"?: Array<string> - Files to exclude from processing"base-folder"?: string - Base folder for relative pathsdirective?: Array<Directive> - Configuration directives for transformations"declare-directive"?: {[name: string]: string} - Custom directive declarations"output-artifact"?: Array<string> - Artifacts to output"message-format"?: "json" | "regular" - Message output formatExtension Properties:
use?: string[] | string - Extensions to use"use-extension"?: {[extensionName: string]: string} - Extension configurationrequire?: Array<string> - Required modules"try-require"?: Array<string> - Optional required modulesFeature Flags:
help?: any - Help configuration"pass-thru"?: any[] - Pass-through options"disable-validation"?: boolean - Disable schema validationcache?: any - Caching configurationvscode?: any - VS Code specific behavior (does not influence core behavior)stats?: boolean - Toggle outputting statistics for current specsinteractive?: boolean - Start interactive plugin and cache traffic between extensions"skip-semantics-validation"?: boolean - Skip semantic validation pluginInternal Properties:
__status?: any - Internal status information__parents?: any | undefined - Parent configuration references"override-info"?: any - Source map information for composite swagger methodinterface AutorestRawConfigurationAlias {
// Extends base configuration with aliases for backward compatibility
}Provides backward compatibility aliases for configuration properties.
function createAutorestConfiguration(
raw: AutorestNormalizedConfiguration,
configFileFolderUri: string,
// Additional parameters
): AutorestConfiguration;Creates a fully processed AutorestConfiguration from normalized configuration with URI resolution and validation.
import { AutorestNormalizedConfiguration } from "@autorest/configuration";
const config: AutorestNormalizedConfiguration = {
"input-file": ["swagger.json"],
"output-folder": "./generated",
"base-folder": ".",
debug: false,
verbose: true,
"message-format": "json"
};const extendedConfig: AutorestNormalizedConfiguration = {
"input-file": ["api.yaml"],
use: ["@autorest/csharp", "@autorest/python"],
"use-extension": {
"@autorest/csharp": "^3.0.0",
"@autorest/python": "^6.0.0"
},
csharp: true,
python: true,
"csharp.namespace": "MyApi",
"python.package-name": "my_api"
};import { Directive } from "@autorest/configuration";
const configWithDirectives: AutorestNormalizedConfiguration = {
"input-file": ["swagger.json"],
directive: [
{
from: "swagger-document",
where: "$.paths.*.*",
transform: "return $.operationId = $.operationId || 'unnamed'"
},
{
suppress: ["R3016"],
reason: ["Legacy API compatibility"]
}
]
};The configuration types work with the schema validation system to ensure type safety and proper validation of all configuration properties. Invalid configurations are caught at parse time with detailed error messages.