55 lines
34 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="generator" content="Docusaurus">
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-132927057-1","auto"),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-132927057-1","auto"),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<script src="https://buttons.github.io/buttons.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
<script src="/js/code-block-buttons.js"></script>
<title data-react-helmet="true">Configuration Options</title>
<meta data-react-helmet="true" http-equiv="x-ua-compatible" content="ie=edge"><meta data-react-helmet="true" property="og:title" content="OpenAPI Generator · Generate clients, servers, and documentation from OpenAPI 2.0/3.x documents"><meta data-react-helmet="true" property="og:image" content="https://openapi-generator.tech/img/docusaurus.png"><meta data-react-helmet="true" property="twitter:image" content="https://openapi-generator.tech/img/docusaurus.png"><meta data-react-helmet="true" name="twitter:image:alt" content="Image for OpenAPI Generator · Generate clients, servers, and documentation from OpenAPI 2.0/3.x documents"><meta data-react-helmet="true" name="twitter:card" content="summary"><meta data-react-helmet="true" name="description" content="Our tooling supports the following types of configuration:"><meta data-react-helmet="true" property="og:description" content="Our tooling supports the following types of configuration:"><meta data-react-helmet="true" property="og:url" content="https://openapi-generator.tech/docs/configuration">
<link data-react-helmet="true" rel="shortcut icon" href="/img/favicon.png">
<link rel="stylesheet" href="/styles.62ba095c.css">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}function e(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}var n=window.matchMedia("(prefers-color-scheme: dark)");n.addListener((function(n){null===e()&&t(n.matches?"dark":"")}));var a=e();null!==a?t(a):n.matches&&t("dark")}()</script>
<div id="__docusaurus">
<nav class="navbar navbar--light navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></div><a aria-current="page" class="navbar__brand active" href="/"><img class="navbar__logo" src="/img/mono-logo.svg" alt="OpenAPI Tools logo"><strong>OpenAPI Generator</strong></a><a class="navbar__item navbar__link" href="/docs/installation">Getting Started</a><a class="navbar__item navbar__link" href="/docs/generators">Generators</a><a class="navbar__item navbar__link" href="/docs/roadmap">Roadmap</a><a class="navbar__item navbar__link" href="/docs/faq">FAQ</a><a class="navbar__item navbar__link" href="/team">Team</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a class="navbar__item navbar__link" activeclassname="navbar__link--active" to="https://api.openapi-generator.tech" href="https://api.openapi-generator.tech">API</a></div><div class="navbar__items navbar__items--right"><div class="react-toggle react-toggle--disabled displayOnlyInLargeViewport_1gtM"><div class="react-toggle-track"><div class="react-toggle-track-check"><span class="toggle_keGJ moon_1gwN"></span></div><div class="react-toggle-track-x"><span class="toggle_keGJ sun_3CPA"></span></div></div><div class="react-toggle-thumb"></div><input type="checkbox" disabled="" aria-label="Dark mode toggle" class="react-toggle-screenreader-only"></div><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input type="search" id="search_input_react" placeholder="Search" aria-label="Search" class="navbar__search-input search-bar"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div><div class="navbar-sidebar"><div class="navbar-sidebar__brand"><a aria-current="page" class="navbar__brand active" href="/"><img class="navbar__logo" src="/img/mono-logo.svg" alt="OpenAPI Tools logo"><strong>OpenAPI Generator</strong></a></div><div class="navbar-sidebar__items"><div class="menu"><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/installation">Getting Started</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/generators">Generators</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/roadmap">Roadmap</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/faq">FAQ</a></li><li class="menu__list-item"><a class="menu__link" href="/team">Team</a></li><li class="menu__list-item"><a class="menu__link" href="/blog">Blog</a></li><li class="menu__list-item"><a class="menu__link" activeclassname="navbar__link--active" to="https://api.openapi-generator.tech" href="https://api.openapi-generator.tech">API</a></li></ul></div></div></div></nav><div class="main-wrapper"><div class="docPage_1kjD"><div class="docSidebarContainer_1cYp"><div class="sidebar_1kLs"><div class="menu menu--responsive"><button aria-label="Open Menu" class="button button--secondary button--sm menu__button" type="button"><svg class="sidebarMenuIcon_2vk4" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 32 32" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><ul class="menu__list"><li class="menu__list-item"><a class="menu__link menu__link--sublist menu__link--active" href="#!">Getting Started</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/installation">CLI Installation</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/plugins">Plugins</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/online">Online</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/usage">Usage</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/globals">Global Properties</a></li><li class="menu__list-item"><a aria-current="page" class="menu__link menu__link--active" href="/docs/configuration">Configuration Options</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/file-post-processing">File post-processing</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">Extending</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/templating">Using Templates</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/customization">Customization</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/debugging">Debugging</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/integrations">Workflow Integrations</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">Contributing</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/contributing">Guidelines</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/code-of-conduct">Code of Conduct</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/contribute-building">Building the code</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/new-generator">Create a New Generator</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">About</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/roadmap">Roadmap</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/swagger-codegen-migration">Migrating from Swagger Codegen</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/fork-qna">Swagger Codegen Fork: Q&amp;A</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">Releases</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/release-summary">Release Summary</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/release-3-0-0">Release Notes: 3.0.0</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">API</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/generators">Generators List</a></li></ul></li></ul></div></div></div><main class="docMainContainer_FFX1"><div class="padding-vert--lg"><div class="container"><div class="row"><div class="col"><div class="docItemContainer_2cwg"><article><header><h1 class="docTitle_1vWb">Configuration Options</h1></header><div class="markdown"><p>Our tooling supports the following types of configuration:</p><ul><li><a href="/docs/globals">global properties</a><ul><li>properties with cross-cutting concerns which control generation, but <em>don&#x27;t</em> belong to individual generators</li><li>Example: <code>debugSupportingFiles</code> prints the contents of template data bound to supporting files</li></ul></li><li>config options<ul><li>configuration specific to each individual <a href="/docs/generators/README">generator</a></li><li>these options are susceptible to validation within the defining generator; a config option of the same name across multiple generators may be validated differently in each</li><li>NOTE: The CLI accepts config options as &quot;additional properties&quot;</li></ul></li><li>additional properties<ul><li>these are the properties which will be passed to templates</li><li>generally used to pass user-defined properties to custom templates</li><li>many config options may also be passed as additional properties, however generators will read/modify/rewrite config options</li><li>users may pass custom additional properties and use these within templates (e.g. a custom <code>generatedBy</code> key with a value of <code>Jim Schubert</code> for inclusion in a custom CVS-like header)</li></ul></li><li>top-level properties specific to individual tools/plugins used to bootstrap our tooling</li></ul><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="tool-specific-declarations"></a><a aria-hidden="true" tabindex="-1" class="hash-link" href="#tool-specific-declarations" title="Direct link to heading">#</a>Tool-specific Declarations</h2><p>The READMEs for the <a href="https://openapi-generator.tech/docs/usage#generate">CLI</a>, <a href="https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-gradle-plugin">Gradle Plugin</a>, <a href="https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-maven-plugin">Maven Plugin</a>, and <a href="https://github.com/OpenAPITools/sbt-openapi-generator/blob/master/README.md">SBT Plugin</a> may have top-level or tooling specific options which appear to duplicate &#x27;config options&#x27; or &#x27;global properties&#x27;. Each may also expose user-facing properties slightly differently from the other tools. This may occur due to:</p><ul><li>Conventions used by the underlying tooling</li><li>Limitations in underlying frameworks which define how properties must be declared</li><li>Continuation of support for &quot;legacy&quot; invocation patterns</li><li>Mistakes in documentation and/or contributions (please do <a href="https://github.com/OpenAPITools/openapi-generator/issues/new?assignees=&amp;labels=Issue%3A+Bug&amp;template=bug_report.md&amp;title=%5BBUG%5D+Issue+with+options">file a bug</a>)</li></ul><p>Take, for example, the CLI option of <code>--skip-validate-spec</code>. This flag sets the value to true with no option to set it to false (the default internally). The maven and gradle plugins allow for the top-level option <code>skipValidateSpec</code> to have a value of true or false. The SBT plugin, on the other hand, follows community convention and this property is <code>openApiSkipValidateSpec</code>.</p><p><em>How</em> you provide values to options also depends on the tool. OpenAPI Generator supports global properties for <a href="https://openapi-generator.tech/docs/customization/#selective-generation">selective generation</a> -- such as <code>apis</code> -- to have either a blank value or a comma-separated list of selected values. We would define this in CLI as <code>--global-property apis</code> or <code>--global-property apis=Equipment</code>. In the Gradle Plugin, these properties are set directly as strings:</p><pre class="mdxCodeBlock_iHAB"><div class="codeBlockWrapper_2QGZ"><pre class="prism-code language-bash codeBlock_19pQ" style="color:#F8F8F2;background-color:#282A36"><div class="token-line" style="color:#F8F8F2"><span class="token plain">openApiGenerate </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> globalProperties </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> apis: </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain">,</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> models: </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;User,Pet&quot;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span></div></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_1BYj">Copy</button></div></pre><p>In the Maven plugin, we&#x27;re limited by XML syntax where <code>&lt;apis/&gt;</code> and <code>&lt;apis&gt;&lt;/apis&gt;</code> are treated the same as if the <code>apis</code> node was undefined; there&#x27;s no way to provide an empty string as a default. Instead, we have to extract the global property into its own properties which maintain the two states supported elsewhere (i.e. &quot;all apis&quot; or &quot;select apis&quot;). We have <code>generateApis</code> which accepts a boolean and <code>apisToGenerate</code> which accepts a comma-separated selection list.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor" id="discovering-options"></a><a aria-hidden="true" tabindex="-1" class="hash-link" href="#discovering-options" title="Direct link to heading">#</a>Discovering Options</h2><p>Refer to <a href="/docs/globals">global properties</a> for a list of available global properties and their usage.</p><p>Top-level tooling options are defined in <a href="https://openapi-generator.tech/docs/usage/#generate">CLI usage</a>. Many of these options directly map to camel case options in other tools, but do refer to <a href="https://openapi-generator.tech/docs/plugins">plugin documentation</a> for full details or plugin-specific differences.</p><p>Config options for generators are available in <a href="https://openapi-generator.tech/docs/generators">documentation online</a>. You may also use the CLI to query config options for a target generator using <code>openapi-generator config-help -g &lt;generator-name&gt;</code>. For example:</p><pre class="mdxCodeBlock_iHAB"><div class="codeBlockWrapper_2QGZ"><pre class="prism-code language-bash codeBlock_19pQ" style="color:#F8F8F2;background-color:#282A36"><div class="token-line" style="color:#F8F8F2"><span class="token plain">$ openapi-generator config-help -g mysql-schema</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain">CONFIG OPTIONS</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> defaultDatabaseName</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> Default database name </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> all MySQL queries </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">Default: </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> identifierNamingConvention</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> Naming convention of MySQL identifiers</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">table names and </span><span class="token function" style="color:rgb(80, 250, 123)">column</span><span class="token plain"> names</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">. This is not related to database name </span><span class="token function" style="color:rgb(80, 250, 123)">which</span><span class="token plain"> is defined by defaultDatabaseName option </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">Default: original</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> original - Do not transform original names</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> snake_case - Use snake_case names</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> jsonDataTypeEnabled</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> Use special JSON MySQL data </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">type</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> complex model properties. Requires MySQL version </span><span class="token number">5.7</span><span class="token plain">.8. Generates TEXT data </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">type</span><span class="token plain"> when disabled </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">Default: </span><span class="token boolean">true</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> namedParametersEnabled</span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> Generates model prepared SQLs with named parameters, eg. :petName. Question mark placeholder used when option disabled. </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">Default: </span><span class="token boolean">false</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span></div></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_1BYj">Copy</button></div></pre><p>This output provides the name of the configuration option. A set of acceptable values for any constrained values will print as an indented list (e.g. <code>identifierNamingConvention</code> above).</p><p>Suppose you want to apply snake case naming to mysql schema outputs. Your configuration might resemble the following examples.</p><p><strong>CLI</strong></p><pre class="mdxCodeBlock_iHAB"><div class="codeBlockWrapper_2QGZ"><pre class="prism-code language-bash codeBlock_19pQ" style="color:#F8F8F2;background-color:#282A36"><div class="token-line" style="color:#F8F8F2"><span class="token plain">openapi-generator -g mysql-schema -o out -i spec.yaml --additional-properties</span><span class="token operator">=</span><span class="token plain">identifierNamingConvention</span><span class="token operator">=</span><span class="token plain">snake_case</span></div></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_1BYj">Copy</button></div></pre><p>It may seem like a typo but there are two <code>=</code> signs in the above example.</p><p><strong>Maven Plugin</strong></p><pre class="mdxCodeBlock_iHAB"><div class="codeBlockWrapper_2QGZ"><pre class="prism-code language-bash codeBlock_19pQ" style="color:#F8F8F2;background-color:#282A36"><div class="token-line" style="color:#F8F8F2"><span class="token operator">&lt;</span><span class="token plain">execution</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">id</span><span class="token operator">&gt;</span><span class="token plain">mysql-schema</span><span class="token operator">&lt;</span><span class="token plain">/id</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">phase</span><span class="token operator">&gt;</span><span class="token plain">generate-sources</span><span class="token operator">&lt;</span><span class="token plain">/phase</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">goals</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">goal</span><span class="token operator">&gt;</span><span class="token plain">generate</span><span class="token operator">&lt;</span><span class="token plain">/goal</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">/goals</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">configuration</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">inputSpec</span><span class="token operator">&gt;</span><span class="token plain">spec.yaml</span><span class="token operator">&lt;</span><span class="token plain">/inputSpec</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">generatorName</span><span class="token operator">&gt;</span><span class="token plain">mysql-schema</span><span class="token operator">&lt;</span><span class="token plain">/generatorName</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">configOptions</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">identifierNamingConvention</span><span class="token operator">&gt;</span><span class="token plain">snake_case</span><span class="token operator">&lt;</span><span class="token plain">/identifierNamingConvention</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">/configOptions</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">output</span><span class="token operator">&gt;</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${project.build.directory}</span><span class="token plain">/generated-sources/mysql</span><span class="token operator">&lt;</span><span class="token plain">/output</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">/configuration</span><span class="token operator">&gt;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">&lt;</span><span class="token plain">/execution</span><span class="token operator">&gt;</span></div></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_1BYj">Copy</button></div></pre><p><strong>Gradle Plugin</strong></p><pre class="mdxCodeBlock_iHAB"><div class="codeBlockWrapper_2QGZ"><pre class="prism-code language-bash codeBlock_19pQ" style="color:#F8F8F2;background-color:#282A36"><div class="token-line" style="color:#F8F8F2"><span class="token plain">openApiGenerate </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> generatorName </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;mysql-schema&quot;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> inputSpec </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;</span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">$rootDir</span><span class="token string" style="color:rgb(255, 121, 198)">/spec.yaml&quot;</span><span class="token plain">.toString</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> outputDir </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;</span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">$buildDir</span><span class="token string" style="color:rgb(255, 121, 198)">/mysql&quot;</span><span class="token plain">.toString</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> configOptions </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> identifierNamingConvention: </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;snake_case&quot;</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span></div><div class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span></div></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_1BYj">Copy</button></div></pre></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/OpenAPITools/openapi-generator/edit/master/website/../docs/configuration.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 40 40" style="margin-right:0.3em;vertical-align:sub"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col text--right"><em><small>Last updated on <time datetime="2021-02-23T16:31:43.000Z" class="docLastUpdatedAt_1sqk">2/23/2021</time> by <strong>William Cheng</strong></small></em></div></div></div><div class="margin-vert--lg"><nav class="pagination-nav"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/docs/globals"><h5 class="pagination-nav__link--sublabel">Previous</h5><h4 class="pagination-nav__link--label">« Global Properties</h4></a></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/file-post-processing"><h5 class="pagination-nav__link--sublabel">Next</h5><h4 class="pagination-nav__link--label">File post-processing »</h4></a></div></nav></div></div></div><div class="col col--3"><div class="tableOfContents_TbNY"><ul class="contents contents__left-border"><li><a href="#tool-specific-declarations" class="contents__link">Tool-specific Declarations</a></li><li><a href="#discovering-options" class="contents__link">Discovering Options</a></li></ul></div></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">Docs</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/customization">Customizing Generators</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/installation">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/integrations">Workflow Integrations</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Community</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/users">User Showcase</a></li><li class="footer__item"><a class="footer__link-item" target="_blank" rel="noopener noreferrer" href="https://stackoverflow.com/questions/tagged/openapi-generator">Stack Overflow</a></li><li class="footer__item"><a class="footer__link-item" target="_blank" rel="noopener noreferrer" href="https://join.slack.com/t/openapi-generator/shared_invite/enQtNzAyNDMyOTU0OTE1LTY5ZDBiNDI5NzI5ZjQ1Y2E5OWVjMjZkYzY1ZGM2MWQ4YWFjMzcyNDY5MGI4NjQxNDBiMTlmZTc5NjY2ZTQ5MGM">Chat Room</a></li><li class="footer__item"><a class="footer__link-item" target="_blank" rel="noopener noreferrer" href="https://twitter.com/oas_generator">Twitter</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">More</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a class="footer__link-item" target="_blank" rel="noopener noreferrer" href="https://github.com/OpenAPITools/openapi-generator">GitHub</a></li></ul></div></div><div class="text--center"><div class="margin-bottom--sm"><a href="https://openapi-generator.tech/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_1Wg7"><img class="footer__logo" alt="OpenAPI Tools" src="/img/mono-logo.svg"></a></div>Copyright © 2021 OpenAPI-Generator Contributors (https://openapi-generator.tech)</div></div></footer>
</div>
<script src="/styles.376d7561.js"></script>
<script src="/runtime~main.b6330a72.js"></script>
<script src="/main.e67007e6.js"></script>
<script src="/1.e3f0ae73.js"></script>
<script src="/2.2314cd3c.js"></script>
<script src="/3.07edd713.js"></script>
<script src="/1be78505.1826e09b.js"></script>
<script src="/20ac7829.73c16132.js"></script>
<script src="/17896441.e7e6966c.js"></script>
<script src="/2bbf879d.cb599dfa.js"></script>
</body>
</html>