The gen.yaml file reference
TIP
For most use cases, the speakeasy configure
command is the recommended means of interacting with the Speakeasy gen.yaml
file. The speakeasy configure
command has subcommands for configuring sources, targets, GitHub workflow setups, and package publications. All new targets created using speakeasy quickstart
automatically generate workflow files in the .speakeasy/
folder in the root of the target directory.
The Speakeasy VS Code extension (opens in a new tab) provides several useful features for manually editing the gen.yaml
file, including syntax highlighting, autocompletion, and linting for OpenAPI documents and other supported file types.
The gen.yaml
file has several sections.
- The
generation
section is essential for SDK configuration - The
management
andfeatures
sections are maintained by Speakeasy and should not be edited - The final section is for language-specific configuration (for more information, see the language-specific configuration docs)
Generation
The currently supported version of the Speakeasy gen.yaml
configuration file is 2.0.0
. Older versions will be automatically upgraded when encountered.
The generation
section of the configuration supports configuration that is relevant to all SDK targets. If a value isn’t configured here and it has a default value then that value will be added automatically on the next generation. For more information about SDK generation and targets, see our core concepts documentation.
Defines the class name of the main imported class in the generated SDK.
Determines whether to maintain the order of parameters, properties, operations, etc. as they appear in the OpenAPI spec. If set to false, these elements are sorted alphabetically.
optionalPropertyRendering
: Options include always
, never
, and withExample
, which renders optional properties only when an example is present in the OpenAPI spec.
Enables or disables the use of development containers and specifies the schema path. For more information about development containers and SDK sandboxes, see our SDK sandbox documentation.
When set to true, array fields use class names instead of the child schema type.
Includes specific fixes or features to be applied during SDK generation to avoid breaking changes.
nameResolutionDec2023
: Disabling not recommended. Enables changes introduced in December 2023 for improved name resolution, defaults to true for new SDKs. For older SDKs, setting true
is recommended, but will be a breaking change.
parameterOrderingFeb2024
: Disabling not recommended. Enables changes introduced in February 2024 to respect the order of parameters in the OpenAPI document where possible, defaults to true for new SDKs. For older SDKs, setting true
is recommended, but will be a breaking change.
requestResponseComponentNamesFeb2024
: Disabling not recommended. Enables changes introduced in February 2024 to use the name of parent request/response components where possible, defaults to true for new SDKs. For older SDKs, setting true
is recommended, but will be a breaking change.
OAuth2ClientCredentialsEnabled
: Enables the generation of code for handling OAuth 2.0 client credentials for authentication, where possible. Enterprise license only. For detailed information about authentication configuration, see our authentication customization guide.
This field is used to declare your base server URL. It overrides the servers field in your spec if present, or provides a server URL if the servers field is absent.
Disables the generation and usage of a mock HTTP server with generated tests.
configVersion: 2.0.0generation:sdkClassName: speakeasybarmaintainOpenAPIOrder: trueusageSnippets:optionalPropertyRendering: withExampledevContainers:enabled: trueschemaPath: "path/to/schema"useClassNamesForArrayFields: truefixes:nameResolutionDec2023: trueparameterOrderingFeb2024: truerequestResponseComponentNamesFeb2024: trueauth:OAuth2ClientCredentialsEnabled: truebaseServerUrl: "speakeasy.bar/public/api/"mockServer:disabled: true# Add language-specific configs here