55 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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.ec5417b5.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-maven-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="2020-11-28T07:00:23.000Z" class="docLastUpdatedAt_1sqk">2020-11-28</time> by <strong>Ülgen Sarıkavak</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 © 2020 OpenAPI-Generator Contributors (https://openapi-generator.tech)</div></div></footer>
</div>
<script src="/styles.8ca507f6.js"></script>
<script src="/runtime~main.f67870b6.js"></script>
<script src="/main.e63a9028.js"></script>
<script src="/1.fea3cf13.js"></script>
<script src="/2.312ccecd.js"></script>
<script src="/3.7a8bc6c7.js"></script>
<script src="/1be78505.b9ef759e.js"></script>
<script src="/20ac7829.25126d58.js"></script>
<script src="/17896441.42c7a3f9.js"></script>
<script src="/2bbf879d.94daf0e7.js"></script>
</body>
</html>