or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli-arguments.mdconfiguration-loading.mdconfiguration-management.mdconfiguration-schema.mdconfiguration-types.mddirective-processing.mdfile-resolution.mdindex.mdutilities.md
tile.json

configuration-types.mddocs/

Configuration Types

Complete type definitions for AutoRest configuration supporting all AutoRest features and extensions.

Core Configuration Interfaces

AutorestConfiguration

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 config
  • configFileFolderUri: string - URI of the configuration file folder
  • inputFileUris: string[] - Processed input file URIs
  • outputFolderUri: string - Processed output folder URI
  • configurationFiles: string[] - List of configuration files used to create this config
  • help: boolean - Whether help was requested
  • verbose: boolean - Whether logging should be verbose
  • debug: boolean - Whether running in debug mode
  • cachingEnabled: boolean - Whether caching is enabled

AutorestNormalizedConfiguration

interface 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 paths
  • directive?: 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 format

Extension Properties:

  • use?: string[] | string - Extensions to use
  • "use-extension"?: {[extensionName: string]: string} - Extension configuration
  • require?: Array<string> - Required modules
  • "try-require"?: Array<string> - Optional required modules

Feature Flags:

  • help?: any - Help configuration
  • "pass-thru"?: any[] - Pass-through options
  • "disable-validation"?: boolean - Disable schema validation
  • cache?: any - Caching configuration
  • vscode?: any - VS Code specific behavior (does not influence core behavior)
  • stats?: boolean - Toggle outputting statistics for current specs
  • interactive?: boolean - Start interactive plugin and cache traffic between extensions
  • "skip-semantics-validation"?: boolean - Skip semantic validation plugin

Internal Properties:

  • __status?: any - Internal status information
  • __parents?: any | undefined - Parent configuration references
  • "override-info"?: any - Source map information for composite swagger method

Configuration Aliases

AutorestRawConfigurationAlias

interface AutorestRawConfigurationAlias {
  // Extends base configuration with aliases for backward compatibility
}

Provides backward compatibility aliases for configuration properties.

Configuration Creation

createAutorestConfiguration

function createAutorestConfiguration(
  raw: AutorestNormalizedConfiguration,
  configFileFolderUri: string,
  // Additional parameters
): AutorestConfiguration;

Creates a fully processed AutorestConfiguration from normalized configuration with URI resolution and validation.

Type Usage Examples

Basic Configuration

import { AutorestNormalizedConfiguration } from "@autorest/configuration";

const config: AutorestNormalizedConfiguration = {
  "input-file": ["swagger.json"],
  "output-folder": "./generated",
  "base-folder": ".",
  debug: false,
  verbose: true,
  "message-format": "json"
};

Extension Configuration

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"
};

Directive Configuration

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"]
    }
  ]
};

Type Guards and Validation

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.