{
  "author": {
    "name": "Amazon Web Services",
    "organization": true,
    "roles": [
      "author"
    ],
    "url": "https://aws.amazon.com"
  },
  "bin": {
    "projen": "bin/projen"
  },
  "bundled": {
    "@iarna/toml": "^2.2.5",
    "case": "^1.6.3",
    "chalk": "^4.1.2",
    "comment-json": "4.2.2",
    "conventional-changelog-config-spec": "^2.1.0",
    "fast-json-patch": "^3.1.1",
    "glob": "^8",
    "ini": "^2.0.0",
    "semver": "^7.7.1",
    "shx": "^0.4.0",
    "xmlbuilder2": "^3.1.1",
    "yaml": "^2.2.2",
    "yargs": "^17.7.2"
  },
  "dependencies": {
    "constructs": "^10.0.0"
  },
  "dependencyClosure": {
    "constructs": {
      "targets": {
        "dotnet": {
          "namespace": "Constructs",
          "packageId": "Constructs"
        },
        "go": {
          "moduleName": "github.com/aws/constructs-go"
        },
        "java": {
          "maven": {
            "artifactId": "constructs",
            "groupId": "software.constructs"
          },
          "package": "software.constructs"
        },
        "js": {
          "npm": "constructs"
        },
        "python": {
          "distName": "constructs",
          "module": "constructs"
        }
      }
    }
  },
  "description": "CDK for software projects",
  "docs": {
    "stability": "experimental"
  },
  "homepage": "https://github.com/projen/projen.git",
  "jsiiVersion": "5.8.1 (build f749509)",
  "keywords": [
    "cdk",
    "cicd",
    "generator",
    "management",
    "project",
    "scaffolding"
  ],
  "license": "Apache-2.0",
  "metadata": {
    "jsii": {
      "pacmak": {
        "hasDefaultInterfaces": true
      }
    },
    "tscRootDir": "src"
  },
  "name": "projen",
  "readme": {
    "markdown": "<p align=\"center\">\n  <a href=\"https://projen.io\">\n    <img src=\"https://raw.githubusercontent.com/projen/projen/main/logo/projen.svg\">\n    <h3 align=\"center\">projen</h3>\n  </a>\n</p>\n\n<p align=\"center\">\n  Define and maintain complex project configuration through code.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://projen.io/\"><strong>Documentation</strong></a> ·\n  <a href=\"https://github.com/projen/projen/releases\"><strong>Changelog</strong></a> ·\n  <a href=\"#project-types\"><strong>Project types</strong></a> ·\n  <a href=\"#community\"><strong>Join the community</strong></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://opensource.org/licenses/Apache-2.0\"><img src=\"https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg\" alt=\"Apache 2.0 License\"></a>\n  <a href=\"https://gitpod.io/#https://github.com/projen/projen\"><img src=\"https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod\" alt=\"Gitpod ready-to-code\"></a>\n  <a href=\"https://github.com/projen/projen/actions/workflows/release.yml\"><img src=\"https://github.com/projen/projen/actions/workflows/release.yml/badge.svg\" alt=\"Release badge\"></a>\n  <a href=\"https://github.com/projen/projen/commits/main\"><img src=\"https://img.shields.io/github/commit-activity/w/projen/projen\" alt=\"Commit activity\"></a>\n</p>\n\n<br/>\n\n*projen* synthesizes project configuration files such as `package.json`,\n`tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc. from a\nwell-typed definition written in JavaScript.\n\nAs opposed to existing templating/scaffolding tools, *projen* is not a one-off\ngenerator. Synthesized files should never be manually edited (in fact, projen\nenforces that). To modify your project setup, users interact with rich\nstrongly-typed class and execute `projen` to update their project configuration\nfiles.\n\nBy defining a custom project type and using projen in multiple repositories, it's\npossible to update configuration files and CI/CD workflows across dozens (or\nhundreds!?) of projects.\n\nCheck out [this talk](https://youtu.be/SOWMPzXtTCw) about projen from its creator.\n\n## Getting Started\n\n_projen_ doesn't need to be installed. You will be using [npx](https://docs.npmjs.com/cli/v7/commands/npx) to run _projen_ which takes care of all required setup steps.\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ npx projen new PROJECT-TYPE\n🤖 Synthesizing project...\n...\n```\n\n### Project types\n\nCurrently supported project types (use `npx projen new` without a type for a\nfull list):\n\n**Built-in:** (run `npx projen new <type>`)\n\n<!-- <macro exec=\"node ./scripts/readme-projects.js\"> -->\n* [awscdk-app-java](https://projen.io/docs/api/awscdk#awscdkjavaapp-) - AWS CDK app in Java.\n* [awscdk-app-py](https://projen.io/docs/api/awscdk#awscdkpythonapp-) - AWS CDK app in Python.\n* [awscdk-app-ts](https://projen.io/docs/api/awscdk#awscdktypescriptapp-) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://projen.io/docs/api/awscdk#awscdkconstructlibrary-) - AWS CDK construct library project.\n* [cdk8s-app-py](https://projen.io/docs/api/cdk8s#cdk8spythonapp-) - CDK8s app in Python.\n* [cdk8s-app-ts](https://projen.io/docs/api/cdk8s#cdk8stypescriptapp-) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://projen.io/docs/api/cdk8s#constructlibrarycdk8s-) - CDK8s construct library project.\n* [cdktf-construct](https://projen.io/docs/api/cdktf#constructlibrarycdktf-) - CDKTF construct library project.\n* [java](https://projen.io/docs/api/java#javaproject-) - Java project.\n* [jsii](https://projen.io/docs/api/cdk#jsiiproject-) - Multi-language jsii library project.\n* [nextjs](https://projen.io/docs/api/web#nextjsproject-) - Next.js project using JavaScript.\n* [nextjs-ts](https://projen.io/docs/api/web#nextjstypescriptproject-) - Next.js project using TypeScript.\n* [node](https://projen.io/docs/api/javascript#nodeproject-) - Node.js project.\n* [project](https://projen.io/docs/api/projen#project-) - Base project.\n* [python](https://projen.io/docs/api/python#pythonproject-) - Python project.\n* [react](https://projen.io/docs/api/web#reactproject-) - React project using JavaScript.\n* [react-ts](https://projen.io/docs/api/web#reacttypescriptproject-) - React project using TypeScript.\n* [typescript](https://projen.io/docs/api/typescript#typescriptproject-) - TypeScript project.\n* [typescript-app](https://projen.io/docs/api/typescript#typescriptappproject-) - TypeScript app.\n<!-- </macro> -->\n\n**External:** (run `npx projen new --from <type>`)\n\n* [projen-github-action-typescript](https://github.com/projen/projen-github-action-typescript/blob/main/API.md) - GitHub Action in TypeScript project.\n\n> Use `npx projen new PROJECT-TYPE --help` to view a list of command line\n> switches that allows you to specify most project options during bootstrapping.\n> For example: `npx projen new jsii --author-name \"Jerry Berry\"`.\n\nThe `new` command will create a `.projenrc.js` file which looks like this for\n`jsii` projects:\n\n```js\nconst { JsiiProject } = require('projen');\n\nconst project = new JsiiProject({\n  authorAddress: \"elad.benisrael@gmail.com\",\n  authorName: \"Elad Ben-Israel\",\n  name: \"foobar\",\n  repository: \"https://github.com/eladn/foobar.git\",\n});\n\nproject.synth();\n```\n\nThis program instantiates the project type with minimal setup, and then calls\n`synth()` to synthesize the project files. By default, the `new` command will\nalso execute this program, which will result in a fully working project.\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.js` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\nFor example, to setup PyPI publishing in `jsii` projects, you can use\n[`publishToPypi option`](https://projen.io/publisher.html):\n\n```js\nconst project = new JsiiProject({\n  // ...\n  publishToPypi: {\n    distName: \"mydist\",\n    module: \"my_module\",\n  }\n});\n```\n\nRun:\n\n```shell\nnpx projen\n```\n\nAnd you'll notice that your `package.json` file now contains a `python` section in\nits `jsii` config and the GitHub `release.yml` workflow includes a PyPI\npublishing step.\n\nWe recommend to put this in your shell profile, so you can simply run `pj` every\ntime you update `.projenrc.js`:\n\n```bash\nalias pj='npx projen'\n```\n\nMost projects come with an assortment of **tasks** that handle various\ndevelopment activities, from compiling to publishing. Tasks can be and composed\ntogether, and can be run as local commands or turned into GitHub workflows. You\ncan list all tasks with `npx projen --help`:\n\n```shell\n$ npx projen --help\nprojen [command]\n\nCommands:\n  projen new [PROJECT-TYPE-NAME] [OPTIONS]  Creates a new projen project\n  projen clobber                            hard resets to HEAD of origin and cleans the local repo\n  projen compile                            Only compile\n  projen test                               Run tests\n  projen build                              Full release build (test+compile)\n  projen upgrade                            upgrade dependencies (including projen)\n...\n```\n\nThe `build` task is the same task that's executed in your CI builds. It\ntypically compiles, lints, tests and packages your module for distribution.\n\n### Shell Completions\nIf installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run:\n```shell\n# Bash\nprojen completion >> ~/.bashrc\n\n# ZSH\nprojen completion >> ~/.zshrc\n```\n## Features\n\nSome examples of features built-in to project types:\n\n* Fully synthesize `package.json`\n* Standard npm scripts like `compile`, `build`, `test`, `package`\n* eslint\n* Jest\n* jsii: compile, package, api compatibility checks, API.md\n* Bump & release scripts with CHANGELOG generation based on conventional commits\n* Automated PR builds\n* Automated releases to npm, maven, NuGet and PyPI\n* Automated dependency upgrades\n* Mergify configuration\n* LICENSE file generation\n* gitignore + npmignore management\n* Node \"engines\" support with coupling to CI build environment and @types/node\n* Anti-tamper: CI builds will fail if a synthesized file is modified manually\n\n## Documentation\n\nFor documentation including examples and a full API reference, visit <https://projen.io/>.\n\n## Ecosystem\n\n_projen_ takes a \"batteries included\" approach and aims to offer dozens of different project types out of\nthe box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`,\n`projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)...\n\nAdding new project types is as simple as submitting a pull request to this repo and exporting a class that\nextends `projen.Project` (or one of its derivatives). Projen automatically discovers project types so your\ntype will immediately be available in `projen new`.\n\n### Projects in external modules\n\n_projen_ is bundled with many project types out of the box, but it can also work\nwith project types and components defined in external jsii modules (the reason\nwe need jsii is because projen uses the jsii metadata to discover project types\n& options in projen new).\n\nSay we have a module in npm called `projen-vuejs` which includes a single project\ntype for vue.js:\n\n```bash\n$ npx projen new --from projen-vuejs\n```\n\nIf the referenced module includes multiple project types, the type is required.\nSwitches can also be used to specify initial values based on the project type\nAPIs. You can also use any package syntax supported by [yarn\nadd](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like\n`projen-vuejs@1.2.3`, `file:/path/to/local/folder`,\n`git@github.com/awesome/projen-vuejs#1.2.3`, etc.\n\n```bash\n$ npx projen new --from projen-vuejs@^2 vuejs-ts --description \"my awesome vue project\"\n```\n\nUnder the hood, `projen new` will install the `projen-vuejs` module from npm\n(version 2.0.0 and above), discover the project types in it and bootstrap the\n`vuejs-ts` project type. It will assign the value `\"my awesome vue project\"` to\nthe `description` field. If you examine your `.projenrc.js` file, you'll see\nthat `projen-vuejs` is defined as a dev dependency:\n\n```javascript\nconst { VueJsProject } = require('projen-vuejs');\n\nconst project = new VueJsProject({\n  name: 'my-vuejs-sample',\n  description: \"my awesome vue project\",\n  // ...\n  devDeps: [\n    'projen-vuejs'\n  ]\n});\n\nproject.synth();\n```\n\n## Roadmap\n\nSee [Vision](./VISION.md).\n\n## FAQ\n\n### Do I have to write my configuration in JavaScript?\n\nNot at all! JavaScript is the default, but it's also possible to write it in\nJava, Python, TypeScript, or even JSON. This is made\npossible by the [jsii](https://github.com/aws/jsii) library which allows us\nto write APIs once and generate libraries in several languages. You can choose\na different language by passing the `--projenrc-ts`, `--projenrc-py`, `--projenrc-java`, or\n`--projenrc-json` flags when running `projen new`.\n\nNote: using a `.projenrc.json` file to specify configuration only allows\naccessing a subset of the entire API - the options which are passed to the\nconstructor of each project type.\n\n### How does projen work with my IDE?\n\nprojen has an unofficial [VS Code extension]. Check it out!\n\n[VS Code extension]: https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen\n\n## Community\n\nThe projen community can be found within the #projen channel in the [cdk.dev]\ncommunity Slack workspace.\n\n[cdk.dev]: https://cdk.dev/\n\n### Virtual Meetup\n\n- Thursday June 30, 2022\n- 1-2pm America/New_York (EDT)\n- [CFP](https://bit.ly/3NEc0UQ) a Google Form\n- CFP Closes Saturday April 30, 2022\n- Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success)\n\n## Contributions\n\nContributions of all kinds are welcome! Check out our [contributor's\nguide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md).\n\nFor a quick start, check out a development environment:\n\n```bash\n$ git clone git@github.com:projen/projen\n$ cd projen\n$ yarn\n$ yarn watch # compile in the background\n```\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-193-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Hunter-Thompson\"><img src=\"https://avatars.githubusercontent.com/u/20844961?v=4?s=100\" width=\"100px;\" alt=\" Aatman \"/><br /><sub><b> Aatman </b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hunter-Thompson\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://accenture.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/43275295?v=4?s=100\" width=\"100px;\" alt=\"Abdullah Sahin\"/><br /><sub><b>Abdullah Sahin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=abdsahin\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://adam.dev/\"><img src=\"https://avatars.githubusercontent.com/u/2363879?v=4?s=100\" width=\"100px;\" alt=\"Adam\"/><br /><sub><b>Adam</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamdottv\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://adamelkhayyat.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/19326038?v=4?s=100\" width=\"100px;\" alt=\"Adam ElKhayyat\"/><br /><sub><b>Adam ElKhayyat</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamelkhayyat\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/adamelmore\"><img src=\"https://avatars2.githubusercontent.com/u/2363879?v=4?s=100\" width=\"100px;\" alt=\"Adam Elmore\"/><br /><sub><b>Adam Elmore</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamelmore\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/agdimech\"><img src=\"https://avatars.githubusercontent.com/u/51220968?v=4?s=100\" width=\"100px;\" alt=\"Adrian Dimech\"/><br /><sub><b>Adrian Dimech</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=agdimech\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/adrianmace\"><img src=\"https://avatars.githubusercontent.com/u/5071859?v=4?s=100\" width=\"100px;\" alt=\"Adrian Mace\"/><br /><sub><b>Adrian Mace</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adrianmace\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/alejandrolorefice\"><img src=\"https://avatars.githubusercontent.com/u/24880460?v=4?s=100\" width=\"100px;\" alt=\"Alejandro Lorefice\"/><br /><sub><b>Alejandro Lorefice</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=alejandrolorefice\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/alexforsyth\"><img src=\"https://avatars.githubusercontent.com/u/8712303?v=4?s=100\" width=\"100px;\" alt=\"Alexander Forsyth\"/><br /><sub><b>Alexander Forsyth</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=alexforsyth\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://unsubstantiated.blog/\"><img src=\"https://avatars.githubusercontent.com/u/1308885?v=4?s=100\" width=\"100px;\" alt=\"Alexander Steppke\"/><br /><sub><b>Alexander Steppke</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Miradorn\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://amani.kilumanga.com/\"><img src=\"https://avatars.githubusercontent.com/u/8690282?v=4?s=100\" width=\"100px;\" alt=\"Amani Kilumanga\"/><br /><sub><b>Amani Kilumanga</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dkaksl\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://amin.fazl.me/\"><img src=\"https://avatars.githubusercontent.com/u/62678026?v=4?s=100\" width=\"100px;\" alt=\"Amin Fazl\"/><br /><sub><b>Amin Fazl</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=AminFazlMondo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://kichik.com/\"><img src=\"https://avatars.githubusercontent.com/u/1156773?v=4?s=100\" width=\"100px;\" alt=\"Amir Szekely\"/><br /><sub><b>Amir Szekely</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kichik\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.linkedin.com/in/amartinsg/\"><img src=\"https://avatars.githubusercontent.com/u/54241354?v=4?s=100\" width=\"100px;\" alt=\"Anderson Gomes\"/><br /><sub><b>Anderson Gomes</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=andersonmgomes\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/asdcamargo\"><img src=\"https://avatars.githubusercontent.com/u/4683431?v=4?s=100\" width=\"100px;\" alt=\"Andre de Camargo\"/><br /><sub><b>Andre de Camargo</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=asdcamargo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://comfortabledelusions.blogspot.com/\"><img src=\"https://avatars.githubusercontent.com/u/445764?v=4?s=100\" width=\"100px;\" alt=\"Andrew Hammond\"/><br /><sub><b>Andrew Hammond</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=ahammond\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://apkostka.com/\"><img src=\"https://avatars.githubusercontent.com/u/788482?v=4?s=100\" width=\"100px;\" alt=\"Andrew Kostka\"/><br /><sub><b>Andrew Kostka</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=apkostka\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/dippi\"><img src=\"https://avatars.githubusercontent.com/u/3977098?v=4?s=100\" width=\"100px;\" alt=\"Angelo Di Pilla\"/><br /><sub><b>Angelo Di Pilla</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dippi\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://ansgar.dev/\"><img src=\"https://avatars.githubusercontent.com/u/1112056?v=4?s=100\" width=\"100px;\" alt=\"Ansgar Mertens\"/><br /><sub><b>Ansgar Mertens</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=ansgarm\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/yoyomo\"><img src=\"https://avatars.githubusercontent.com/u/12818568?v=4?s=100\" width=\"100px;\" alt=\"Armando J. Ortiz Garcia\"/><br /><sub><b>Armando J. Ortiz Garcia</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yoyomo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/dontirun\"><img src=\"https://avatars.githubusercontent.com/u/4570879?v=4?s=100\" width=\"100px;\" alt=\"Arun Donti\"/><br /><sub><b>Arun Donti</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dontirun\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/abelmokadem\"><img src=\"https://avatars0.githubusercontent.com/u/9717944?v=4?s=100\" width=\"100px;\" alt=\"Ash\"/><br /><sub><b>Ash</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=abelmokadem\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://austinbriggs.dev/\"><img src=\"https://avatars.githubusercontent.com/u/7308231?v=4?s=100\" width=\"100px;\" alt=\"Austin\"/><br /><sub><b>Austin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=awbdallas\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kanatti\"><img src=\"https://avatars.githubusercontent.com/u/8623654?v=4?s=100\" width=\"100px;\" alt=\"Balagopal Kanattil\"/><br /><sub><b>Balagopal Kanattil</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kanatti\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://www.callant.net/\"><img src=\"https://avatars1.githubusercontent.com/u/5915843?v=4?s=100\" width=\"100px;\" alt=\"Bart Callant\"/><br /><sub><b>Bart Callant</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bartcallant\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://beau.sh/\"><img src=\"https://avatars.githubusercontent.com/u/127320?v=4?s=100\" width=\"100px;\" alt=\"Beau Bouchard\"/><br /><sub><b>Beau Bouchard</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=BeauBouchard\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://benlimmer.com/\"><img src=\"https://avatars.githubusercontent.com/u/630449?v=4?s=100\" width=\"100px;\" alt=\"Ben Limmer\"/><br /><sub><b>Ben Limmer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=blimmer\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://bilalquadri.com/\"><img src=\"https://avatars.githubusercontent.com/u/707147?v=4?s=100\" width=\"100px;\" alt=\"Bilal Quadri\"/><br /><sub><b>Bilal Quadri</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bilalq\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://transacid.de/\"><img src=\"https://avatars.githubusercontent.com/u/113231?v=4?s=100\" width=\"100px;\" alt=\"Boris Petersen\"/><br /><sub><b>Boris Petersen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=transacid\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/BradenM\"><img src=\"https://avatars.githubusercontent.com/u/5913808?v=4?s=100\" width=\"100px;\" alt=\"Braden Mars\"/><br /><sub><b>Braden Mars</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=BradenM\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/bmiller08\"><img src=\"https://avatars.githubusercontent.com/u/13002874?v=4?s=100\" width=\"100px;\" alt=\"Brandon Miller\"/><br /><sub><b>Brandon Miller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bmiller08\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/bhleonard\"><img src=\"https://avatars.githubusercontent.com/u/1961679?v=4?s=100\" width=\"100px;\" alt=\"Brian Leonard\"/><br /><sub><b>Brian Leonard</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bhleonard\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/comcalvi\"><img src=\"https://avatars.githubusercontent.com/u/66279577?v=4?s=100\" width=\"100px;\" alt=\"Calvin Combs\"/><br /><sub><b>Calvin Combs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=comcalvi\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/cameroncf\"><img src=\"https://avatars.githubusercontent.com/u/789760?v=4?s=100\" width=\"100px;\" alt=\"Cameron Childress\"/><br /><sub><b>Cameron Childress</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=cameroncf\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/campionfellin\"><img src=\"https://avatars3.githubusercontent.com/u/11984923?v=4?s=100\" width=\"100px;\" alt=\"Campion Fellin\"/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=campionfellin\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://medium.com/@caodanju\"><img src=\"https://avatars.githubusercontent.com/u/18650321?v=4?s=100\" width=\"100px;\" alt=\"Cao Peng\"/><br /><sub><b>Cao Peng</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=caopengau\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/ctasada\"><img src=\"https://avatars.githubusercontent.com/u/1381772?v=4?s=100\" width=\"100px;\" alt=\"Carlos Tasada\"/><br /><sub><b>Carlos Tasada</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=ctasada\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://chrisb.cloud/\"><img src=\"https://avatars.githubusercontent.com/u/12206103?v=4?s=100\" width=\"100px;\" alt=\"Chris Bateman\"/><br /><sub><b>Chris Bateman</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=chris-bateman\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/cgatt\"><img src=\"https://avatars.githubusercontent.com/u/45865322?v=4?s=100\" width=\"100px;\" alt=\"Chris Gatt\"/><br /><sub><b>Chris Gatt</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=cgatt\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://rybicki.io/\"><img src=\"https://avatars2.githubusercontent.com/u/5008987?v=4?s=100\" width=\"100px;\" alt=\"Christopher Rybicki\"/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Chriscbr\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/corymhall\"><img src=\"https://avatars.githubusercontent.com/u/43035978?v=4?s=100\" width=\"100px;\" alt=\"Cory Hall\"/><br /><sub><b>Cory Hall</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=corymhall\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://aws.amazon.com/chime/chime-sdk/\"><img src=\"https://avatars.githubusercontent.com/u/71404236?v=4?s=100\" width=\"100px;\" alt=\"Court Schuett\"/><br /><sub><b>Court Schuett</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=schuettc\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://medium.com/@craig.burdulis\"><img src=\"https://avatars.githubusercontent.com/u/12520946?v=4?s=100\" width=\"100px;\" alt=\"Craig Burdulis\"/><br /><sub><b>Craig Burdulis</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=icj217\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://pallares.io/\"><img src=\"https://avatars3.githubusercontent.com/u/1077520?v=4?s=100\" width=\"100px;\" alt=\"Cristian Pallarés\"/><br /><sub><b>Cristian Pallarés</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skyrpex\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://danielmschmidt.de/\"><img src=\"https://avatars.githubusercontent.com/u/1337046?v=4?s=100\" width=\"100px;\" alt=\"Daniel Schmidt\"/><br /><sub><b>Daniel Schmidt</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=DanielMSchmidt\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://typefully.com/dannysteenman\"><img src=\"https://avatars.githubusercontent.com/u/15192660?v=4?s=100\" width=\"100px;\" alt=\"Danny Steenman\"/><br /><sub><b>Danny Steenman</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dannysteenman\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/dkershner6\"><img src=\"https://avatars.githubusercontent.com/u/25798427?v=4?s=100\" width=\"100px;\" alt=\"Derek Kershner\"/><br /><sub><b>Derek Kershner</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dkershner6\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/eduardomourar\"><img src=\"https://avatars.githubusercontent.com/u/16357187?v=4?s=100\" width=\"100px;\" alt=\"Eduardo Rodrigues\"/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eduardomourar\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://eladb.github.com/\"><img src=\"https://avatars3.githubusercontent.com/u/598796?v=4?s=100\" width=\"100px;\" alt=\"Elad Ben-Israel\"/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eladb\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/iliapolo\"><img src=\"https://avatars.githubusercontent.com/u/1428812?v=4?s=100\" width=\"100px;\" alt=\"Eli Polonsky\"/><br /><sub><b>Eli Polonsky</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=iliapolo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://elig.io/\"><img src=\"https://avatars.githubusercontent.com/u/22875166?v=4?s=100\" width=\"100px;\" alt=\"Eligio Mariño\"/><br /><sub><b>Eligio Mariño</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gmeligio\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Tucker-Eric\"><img src=\"https://avatars.githubusercontent.com/u/6483755?v=4?s=100\" width=\"100px;\" alt=\"Eric Tucker\"/><br /><sub><b>Eric Tucker</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Tucker-Eric\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/echeung-amzn\"><img src=\"https://avatars.githubusercontent.com/u/81188333?v=4?s=100\" width=\"100px;\" alt=\"Eugene Cheung\"/><br /><sub><b>Eugene Cheung</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=echeung-amzn\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/FonsBiemans\"><img src=\"https://avatars.githubusercontent.com/u/34266227?v=4?s=100\" width=\"100px;\" alt=\"Fons Biemans\"/><br /><sub><b>Fons Biemans</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=FonsBiemans\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/froblesmartin\"><img src=\"https://avatars.githubusercontent.com/u/18084174?v=4?s=100\" width=\"100px;\" alt=\"Francisco Robles Martín\"/><br /><sub><b>Francisco Robles Martín</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=froblesmartin\" title=\"Documentation\">📖</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/fynnfluegge\"><img src=\"https://avatars.githubusercontent.com/u/16321871?v=4?s=100\" width=\"100px;\" alt=\"Fynn Flügge\"/><br /><sub><b>Fynn Flügge</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=fynnfluegge\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/garysassano\"><img src=\"https://avatars.githubusercontent.com/u/10464497?v=4?s=100\" width=\"100px;\" alt=\"Gary Sassano\"/><br /><sub><b>Gary Sassano</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=garysassano\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/gradybarrett\"><img src=\"https://avatars1.githubusercontent.com/u/1140074?v=4?s=100\" width=\"100px;\" alt=\"Grady Barrett\"/><br /><sub><b>Grady Barrett</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gradybarrett\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://blog.herlein.com/\"><img src=\"https://avatars.githubusercontent.com/u/173428?v=4?s=100\" width=\"100px;\" alt=\"Greg Herlein\"/><br /><sub><b>Greg Herlein</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gherlein\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/GreggSetzer\"><img src=\"https://avatars.githubusercontent.com/u/1624443?v=4?s=100\" width=\"100px;\" alt=\"Gregg\"/><br /><sub><b>Gregg</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=GreggSetzer\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/hasanaburayyan\"><img src=\"https://avatars.githubusercontent.com/u/45375125?v=4?s=100\" width=\"100px;\" alt=\"Hasan\"/><br /><sub><b>Hasan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hasanaburayyan\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/hassanazharkhan\"><img src=\"https://avatars.githubusercontent.com/u/57677979?v=4?s=100\" width=\"100px;\" alt=\"Hassan Azhar\"/><br /><sub><b>Hassan Azhar</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hassanazharkhan\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/HassanMahmud\"><img src=\"https://avatars3.githubusercontent.com/u/58504381?v=4?s=100\" width=\"100px;\" alt=\"Hassan Mahmud\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=HassanMahmud\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://dk.linkedin.com/in/hassanmahmud93\"><img src=\"https://avatars1.githubusercontent.com/u/7426703?v=4?s=100\" width=\"100px;\" alt=\"Hassan Mahmud\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hass123uk\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mKeRix\"><img src=\"https://avatars.githubusercontent.com/u/770596?v=4?s=100\" width=\"100px;\" alt=\"Heiko Rothe\"/><br /><sub><b>Heiko Rothe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mKeRix\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/hyandell\"><img src=\"https://avatars.githubusercontent.com/u/477715?v=4?s=100\" width=\"100px;\" alt=\"Henri Yandell\"/><br /><sub><b>Henri Yandell</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hyandell\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/henrysachs\"><img src=\"https://avatars0.githubusercontent.com/u/17173951?v=4?s=100\" width=\"100px;\" alt=\"Henry Sachs\"/><br /><sub><b>Henry Sachs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=henrysachs\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://blog.hoseung.me/\"><img src=\"https://avatars.githubusercontent.com/u/39669819?v=4?s=100\" width=\"100px;\" alt=\"Hoseung\"/><br /><sub><b>Hoseung</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=HoseungJang\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://bandism.net/\"><img src=\"https://avatars.githubusercontent.com/u/22633385?v=4?s=100\" width=\"100px;\" alt=\"Ikko Ashimine\"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eltociear\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jackleslie\"><img src=\"https://avatars.githubusercontent.com/u/52004409?v=4?s=100\" width=\"100px;\" alt=\"Jack Leslie\"/><br /><sub><b>Jack Leslie</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jackleslie\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/JackMoseley2001\"><img src=\"https://avatars.githubusercontent.com/u/10659397?v=4?s=100\" width=\"100px;\" alt=\"Jack Moseley\"/><br /><sub><b>Jack Moseley</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JackMoseley2001\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/cogwirrel\"><img src=\"https://avatars.githubusercontent.com/u/1848603?v=4?s=100\" width=\"100px;\" alt=\"Jack Stevenson\"/><br /><sub><b>Jack Stevenson</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=cogwirrel\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jmourelos\"><img src=\"https://avatars3.githubusercontent.com/u/3878434?v=4?s=100\" width=\"100px;\" alt=\"Jacob\"/><br /><sub><b>Jacob</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jmourelos\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://joapy.com/\"><img src=\"https://avatars3.githubusercontent.com/u/325306?v=4?s=100\" width=\"100px;\" alt=\"Jake Pearson\"/><br /><sub><b>Jake Pearson</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jakepearson\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://twitter.com/bracki\"><img src=\"https://avatars.githubusercontent.com/u/49786?v=4?s=100\" width=\"100px;\" alt=\"Jan Brauer\"/><br /><sub><b>Jan Brauer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bracki\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jmalins\"><img src=\"https://avatars.githubusercontent.com/u/2001356?v=4?s=100\" width=\"100px;\" alt=\"Jeff Malins\"/><br /><sub><b>Jeff Malins</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jmalins\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/JeremyJonas\"><img src=\"https://avatars1.githubusercontent.com/u/464119?v=4?s=100\" width=\"100px;\" alt=\"Jeremy Jonas\"/><br /><sub><b>Jeremy Jonas</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JeremyJonas\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jesse-grabowski\"><img src=\"https://avatars.githubusercontent.com/u/2453853?v=4?s=100\" width=\"100px;\" alt=\"Jesse Grabowski\"/><br /><sub><b>Jesse Grabowski</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jesse-grabowski\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jolo-dev\"><img src=\"https://avatars.githubusercontent.com/u/54506108?v=4?s=100\" width=\"100px;\" alt=\"JoLo\"/><br /><sub><b>JoLo</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jolo-dev\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/devnoo\"><img src=\"https://avatars.githubusercontent.com/u/94448?v=4?s=100\" width=\"100px;\" alt=\"Job de Noo\"/><br /><sub><b>Job de Noo</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=devnoo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/jogold\"><img src=\"https://avatars2.githubusercontent.com/u/12623249?v=4?s=100\" width=\"100px;\" alt=\"Jonathan Goldwasser\"/><br /><sub><b>Jonathan Goldwasser</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jogold\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/joostvdwsd\"><img src=\"https://avatars.githubusercontent.com/u/25637088?v=4?s=100\" width=\"100px;\" alt=\"Joost van der Waal\"/><br /><sub><b>Joost van der Waal</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=joostvdwsd\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/JordanSinko\"><img src=\"https://avatars2.githubusercontent.com/u/10212966?v=4?s=100\" width=\"100px;\" alt=\"Jordan Sinko\"/><br /><sub><b>Jordan Sinko</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JordanSinko\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/eganjs\"><img src=\"https://avatars3.githubusercontent.com/u/6639482?v=4?s=100\" width=\"100px;\" alt=\"Joseph Egan\"/><br /><sub><b>Joseph Egan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eganjs\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/misterjoshua\"><img src=\"https://avatars2.githubusercontent.com/u/644092?v=4?s=100\" width=\"100px;\" alt=\"Josh Kellendonk\"/><br /><sub><b>Josh Kellendonk</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=misterjoshua\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/juho9000\"><img src=\"https://avatars.githubusercontent.com/u/13867853?v=4?s=100\" width=\"100px;\" alt=\"Juho Majasaari\"/><br /><sub><b>Juho Majasaari</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=juho9000\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Hi-Fi\"><img src=\"https://avatars.githubusercontent.com/u/1499780?v=4?s=100\" width=\"100px;\" alt=\"Juho Saarinen\"/><br /><sub><b>Juho Saarinen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hi-Fi\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.linkedin.com/in/julian-michel-812a223a/\"><img src=\"https://avatars.githubusercontent.com/u/15660169?v=4?s=100\" width=\"100px;\" alt=\"Julian Michel\"/><br /><sub><b>Julian Michel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jumic\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kaizencc\"><img src=\"https://avatars.githubusercontent.com/u/36202692?v=4?s=100\" width=\"100px;\" alt=\"Kaizen Conroy\"/><br /><sub><b>Kaizen Conroy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kaizencc\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kcwinner\"><img src=\"https://avatars3.githubusercontent.com/u/2728868?v=4?s=100\" width=\"100px;\" alt=\"Kenneth Winner\"/><br /><sub><b>Kenneth Winner</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kcwinner\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://kenneth.wussmann.net/\"><img src=\"https://avatars.githubusercontent.com/u/11491506?v=4?s=100\" width=\"100px;\" alt=\"Kenneth Wußmann\"/><br /><sub><b>Kenneth Wußmann</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=KennethWussmann\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kennyg\"><img src=\"https://avatars.githubusercontent.com/u/98244?v=4?s=100\" width=\"100px;\" alt=\"Kenny Gatdula\"/><br /><sub><b>Kenny Gatdula</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kennyg\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/tinovyatkin\"><img src=\"https://avatars.githubusercontent.com/u/5350898?v=4?s=100\" width=\"100px;\" alt=\"Konstantin Vyatkin\"/><br /><sub><b>Konstantin Vyatkin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tinovyatkin\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/bigkraig\"><img src=\"https://avatars1.githubusercontent.com/u/508403?v=4?s=100\" width=\"100px;\" alt=\"Kraig Amador\"/><br /><sub><b>Kraig Amador</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bigkraig\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://kdabir.com/\"><img src=\"https://avatars.githubusercontent.com/u/735240?v=4?s=100\" width=\"100px;\" alt=\"Kunal Dabir\"/><br /><sub><b>Kunal Dabir</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kdabir\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://kylelaker.com/\"><img src=\"https://avatars.githubusercontent.com/u/850893?v=4?s=100\" width=\"100px;\" alt=\"Kyle Laker\"/><br /><sub><b>Kyle Laker</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kylelaker\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/lexfelixpost\"><img src=\"https://avatars.githubusercontent.com/u/112618115?v=4?s=100\" width=\"100px;\" alt=\"Lex Felix\"/><br /><sub><b>Lex Felix</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lexfelixpost\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/lexGPT\"><img src=\"https://avatars.githubusercontent.com/u/112618115?v=4?s=100\" width=\"100px;\" alt=\"Lex Felix\"/><br /><sub><b>Lex Felix</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lexGPT\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Liam-Johnston\"><img src=\"https://avatars.githubusercontent.com/u/30859946?v=4?s=100\" width=\"100px;\" alt=\"Liam Johnston\"/><br /><sub><b>Liam Johnston</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Liam-Johnston\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/WtfJoke\"><img src=\"https://avatars.githubusercontent.com/u/7139697?v=4?s=100\" width=\"100px;\" alt=\"Manuel\"/><br /><sub><b>Manuel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=WtfJoke\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/marciocadev\"><img src=\"https://avatars.githubusercontent.com/u/67694075?v=4?s=100\" width=\"100px;\" alt=\"Marcio Cruz de Almeida\"/><br /><sub><b>Marcio Cruz de Almeida</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=marciocadev\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mmcculloh-dms\"><img src=\"https://avatars.githubusercontent.com/u/68597641?v=4?s=100\" width=\"100px;\" alt=\"Mark McCulloh\"/><br /><sub><b>Mark McCulloh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmcculloh-dms\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.linkedin.com/in/mark-mcculloh/\"><img src=\"https://avatars.githubusercontent.com/u/1237390?v=4?s=100\" width=\"100px;\" alt=\"Mark McCulloh\"/><br /><sub><b>Mark McCulloh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=MarkMcCulloh\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://polothy.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/634657?v=4?s=100\" width=\"100px;\" alt=\"Mark Nielsen\"/><br /><sub><b>Mark Nielsen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=polothy\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/schuch\"><img src=\"https://avatars.githubusercontent.com/u/6401299?v=4?s=100\" width=\"100px;\" alt=\"Markus Schuch\"/><br /><sub><b>Markus Schuch</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=schuch\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/marnixdessing\"><img src=\"https://avatars.githubusercontent.com/u/14939820?v=4?s=100\" width=\"100px;\" alt=\"Marnix Dessing\"/><br /><sub><b>Marnix Dessing</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=marnixdessing\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mmuller88\"><img src=\"https://avatars0.githubusercontent.com/u/18393842?v=4?s=100\" width=\"100px;\" alt=\"Martin Muller\"/><br /><sub><b>Martin Muller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmuller88\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mzuber\"><img src=\"https://avatars.githubusercontent.com/u/948563?v=4?s=100\" width=\"100px;\" alt=\"Martin Zuber\"/><br /><sub><b>Martin Zuber</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mzuber\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://tmokmss.hatenablog.com/\"><img src=\"https://avatars.githubusercontent.com/u/7490655?v=4?s=100\" width=\"100px;\" alt=\"Masashi Tomooka\"/><br /><sub><b>Masashi Tomooka</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tmokmss\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/matt9ucci\"><img src=\"https://avatars.githubusercontent.com/u/8044346?v=4?s=100\" width=\"100px;\" alt=\"Matt Gucci\"/><br /><sub><b>Matt Gucci</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=matt9ucci\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://dev.to/martzcodes\"><img src=\"https://avatars1.githubusercontent.com/u/978362?v=4?s=100\" width=\"100px;\" alt=\"Matt Martz\"/><br /><sub><b>Matt Martz</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=martzcodes\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/diranged\"><img src=\"https://avatars.githubusercontent.com/u/768067?v=4?s=100\" width=\"100px;\" alt=\"Matt Wise\"/><br /><sub><b>Matt Wise</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=diranged\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/msessa\"><img src=\"https://avatars.githubusercontent.com/u/1912143?v=4?s=100\" width=\"100px;\" alt=\"Matteo Sessa\"/><br /><sub><b>Matteo Sessa</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=msessa\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://www.matthewbonig.com/\"><img src=\"https://avatars2.githubusercontent.com/u/1559437?v=4?s=100\" width=\"100px;\" alt=\"Matthew Bonig\"/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mbonig\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mwg-rea\"><img src=\"https://avatars.githubusercontent.com/u/82480228?v=4?s=100\" width=\"100px;\" alt=\"Matthew Gamble\"/><br /><sub><b>Matthew Gamble</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mwg-rea\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/fongie\"><img src=\"https://avatars1.githubusercontent.com/u/19932622?v=4?s=100\" width=\"100px;\" alt=\"Max Körlinge\"/><br /><sub><b>Max Körlinge</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=fongie\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mayurm88\"><img src=\"https://avatars.githubusercontent.com/u/75965317?v=4?s=100\" width=\"100px;\" alt=\"Mayur Mahrotri\"/><br /><sub><b>Mayur Mahrotri</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mayurm88\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Mayureshd-18\"><img src=\"https://avatars.githubusercontent.com/u/98738585?v=4?s=100\" width=\"100px;\" alt=\"Mayuresh Dharwadkar\"/><br /><sub><b>Mayuresh Dharwadkar</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Mayureshd-18\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mikejgray\"><img src=\"https://avatars.githubusercontent.com/u/30268971?v=4?s=100\" width=\"100px;\" alt=\"Mike\"/><br /><sub><b>Mike</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mikejgray\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/MrArnoldPalmer\"><img src=\"https://avatars.githubusercontent.com/u/7221111?v=4?s=100\" width=\"100px;\" alt=\"Mitchell Valine\"/><br /><sub><b>Mitchell Valine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=MrArnoldPalmer\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://moritzkornher.de/\"><img src=\"https://avatars.githubusercontent.com/u/379814?v=4?s=100\" width=\"100px;\" alt=\"Momo Kornher\"/><br /><sub><b>Momo Kornher</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mrgrain\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/gmukul01\"><img src=\"https://avatars.githubusercontent.com/u/3636885?v=4?s=100\" width=\"100px;\" alt=\"Mukul Bansal\"/><br /><sub><b>Mukul Bansal</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gmukul01\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://blog.neilkuan.net/\"><img src=\"https://avatars.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"Neil Kuan\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=neilkuan\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/nicholas-keers\"><img src=\"https://avatars.githubusercontent.com/u/94363953?v=4?s=100\" width=\"100px;\" alt=\"Nick Keers\"/><br /><sub><b>Nick Keers</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=nicholas-keers\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/njlynch\"><img src=\"https://avatars.githubusercontent.com/u/1376292?v=4?s=100\" width=\"100px;\" alt=\"Nick Lynch\"/><br /><sub><b>Nick Lynch</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=njlynch\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/nbyl\"><img src=\"https://avatars.githubusercontent.com/u/1185719?v=4?s=100\" width=\"100px;\" alt=\"Nicolas Byl\"/><br /><sub><b>Nicolas Byl</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=nbyl\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/nikhil-zadoo\"><img src=\"https://avatars.githubusercontent.com/u/29751551?v=4?s=100\" width=\"100px;\" alt=\"Nikhil Zadoo\"/><br /><sub><b>Nikhil Zadoo</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=nikhil-zadoo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://nikovirtala.io/\"><img src=\"https://avatars.githubusercontent.com/u/6813506?v=4?s=100\" width=\"100px;\" alt=\"Niko Virtala\"/><br /><sub><b>Niko Virtala</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=nikovirtala\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/niraj8\"><img src=\"https://avatars.githubusercontent.com/u/8666468?v=4?s=100\" width=\"100px;\" alt=\"Niraj Palecha\"/><br /><sub><b>Niraj Palecha</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=niraj8\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/dandelionur\"><img src=\"https://avatars.githubusercontent.com/u/89805919?v=4?s=100\" width=\"100px;\" alt=\"Nurbanu\"/><br /><sub><b>Nurbanu</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dandelionur\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/pahud\"><img src=\"https://avatars3.githubusercontent.com/u/278432?v=4?s=100\" width=\"100px;\" alt=\"Pahud Hsieh\"/><br /><sub><b>Pahud Hsieh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pahud\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/patrickdean\"><img src=\"https://avatars.githubusercontent.com/u/1610088?v=4?s=100\" width=\"100px;\" alt=\"Patrick\"/><br /><sub><b>Patrick</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=patrickdean\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/duckpuppy\"><img src=\"https://avatars.githubusercontent.com/u/19253?v=4?s=100\" width=\"100px;\" alt=\"Patrick Aikens\"/><br /><sub><b>Patrick Aikens</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=duckpuppy\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://pepperize.com/\"><img src=\"https://avatars.githubusercontent.com/u/13916107?v=4?s=100\" width=\"100px;\" alt=\"Patrick Florek\"/><br /><sub><b>Patrick Florek</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pflorek\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/oconpa\"><img src=\"https://avatars.githubusercontent.com/u/35761519?v=4?s=100\" width=\"100px;\" alt=\"Patrick O'Connor\"/><br /><sub><b>Patrick O'Connor</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=oconpa\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://p6m7g8.github.io/\"><img src=\"https://avatars0.githubusercontent.com/u/34295?v=4?s=100\" width=\"100px;\" alt=\"Philip M. Gollucci\"/><br /><sub><b>Philip M. Gollucci</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgollucci\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/philipmw\"><img src=\"https://avatars.githubusercontent.com/u/1379645?v=4?s=100\" width=\"100px;\" alt=\"Philip White\"/><br /><sub><b>Philip White</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=philipmw\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://garbe.io/\"><img src=\"https://avatars.githubusercontent.com/u/721899?v=4?s=100\" width=\"100px;\" alt=\"Philipp Garbe\"/><br /><sub><b>Philipp Garbe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgarbe\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://dynobase.dev/\"><img src=\"https://avatars3.githubusercontent.com/u/3391616?v=4?s=100\" width=\"100px;\" alt=\"Rafal Wilinski\"/><br /><sub><b>Rafal Wilinski</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RafalWilinski\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://ramihusein.com/\"><img src=\"https://avatars.githubusercontent.com/u/96155378?v=4?s=100\" width=\"100px;\" alt=\"Rami Husein\"/><br /><sub><b>Rami Husein</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=rami-husein\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://rix0r.nl/\"><img src=\"https://avatars.githubusercontent.com/u/524162?v=4?s=100\" width=\"100px;\" alt=\"Rico Huijbers\"/><br /><sub><b>Rico Huijbers</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=rix0rrr\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://tinkerin.gs/\"><img src=\"https://avatars.githubusercontent.com/u/386001?v=4?s=100\" width=\"100px;\" alt=\"Rob Giseburt\"/><br /><sub><b>Rob Giseburt</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=giseburt\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://robbiemackay.com/\"><img src=\"https://avatars.githubusercontent.com/u/7965?v=4?s=100\" width=\"100px;\" alt=\"Robbie Mackay\"/><br /><sub><b>Robbie Mackay</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=rjmackay\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/robert-affinidi\"><img src=\"https://avatars.githubusercontent.com/u/88320072?v=4?s=100\" width=\"100px;\" alt=\"Robert\"/><br /><sub><b>Robert</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=robert-affinidi\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://rfrezinos.wordpress.com/\"><img src=\"https://avatars.githubusercontent.com/u/3926597?v=4?s=100\" width=\"100px;\" alt=\"Rodrigo Farias Rezino\"/><br /><sub><b>Rodrigo Farias Rezino</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=rfrezino\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rogerchi\"><img src=\"https://avatars.githubusercontent.com/u/625496?v=4?s=100\" width=\"100px;\" alt=\"Roger Chi\"/><br /><sub><b>Roger Chi</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=rogerchi\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://keybase.io/romainmuller\"><img src=\"https://avatars2.githubusercontent.com/u/411689?v=4?s=100\" width=\"100px;\" alt=\"Romain Marcadier\"/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RomainMuller\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/quesabe\"><img src=\"https://avatars.githubusercontent.com/u/90195036?v=4?s=100\" width=\"100px;\" alt=\"Roman Vasilev\"/><br /><sub><b>Roman Vasilev</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=quesabe\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/dj-rabel\"><img src=\"https://avatars.githubusercontent.com/u/4653214?v=4?s=100\" width=\"100px;\" alt=\"Ruben Pascal Abel\"/><br /><sub><b>Ruben Pascal Abel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dj-rabel\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://ryansonshine.com/\"><img src=\"https://avatars.githubusercontent.com/u/9534477?v=4?s=100\" width=\"100px;\" alt=\"Ryan Sonshine\"/><br /><sub><b>Ryan Sonshine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=ryansonshine\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://medium.com/@riywo\"><img src=\"https://avatars.githubusercontent.com/u/37822?v=4?s=100\" width=\"100px;\" alt=\"Ryosuke Iwanaga\"/><br /><sub><b>Ryosuke Iwanaga</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=riywo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/aisamu\"><img src=\"https://avatars.githubusercontent.com/u/431708?v=4?s=100\" width=\"100px;\" alt=\"Samuel Tschiedel\"/><br /><sub><b>Samuel Tschiedel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=aisamu\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/saudkhanzada\"><img src=\"https://avatars.githubusercontent.com/u/30137907?v=4?s=100\" width=\"100px;\" alt=\"Saud Khanzada\"/><br /><sub><b>Saud Khanzada</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=saudkhanzada\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/scottmondo\"><img src=\"https://avatars.githubusercontent.com/u/91044021?v=4?s=100\" width=\"100px;\" alt=\"Scott McFarlane\"/><br /><sub><b>Scott McFarlane</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=scottmondo\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/scottschreckengaust\"><img src=\"https://avatars.githubusercontent.com/u/345885?v=4?s=100\" width=\"100px;\" alt=\"Scott Schreckengaust\"/><br /><sub><b>Scott Schreckengaust</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=scottschreckengaust\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://skorfmann.com/\"><img src=\"https://avatars1.githubusercontent.com/u/136789?v=4?s=100\" width=\"100px;\" alt=\"Sebastian Korfmann\"/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skorfmann\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://selfstructured.com/\"><img src=\"https://avatars.githubusercontent.com/u/361689?v=4?s=100\" width=\"100px;\" alt=\"Shawn MacIntyre\"/><br /><sub><b>Shawn MacIntyre</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=smacintyre\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/suhasgaddam-trueaccord\"><img src=\"https://avatars.githubusercontent.com/u/68877840?v=4?s=100\" width=\"100px;\" alt=\"Suhas Gaddam\"/><br /><sub><b>Suhas Gaddam</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=suhasgaddam-trueaccord\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/thomasklinger1234\"><img src=\"https://avatars1.githubusercontent.com/u/39558817?v=4?s=100\" width=\"100px;\" alt=\"Thomas Klinger\"/><br /><sub><b>Thomas Klinger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=thomasklinger1234\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/hoegertn\"><img src=\"https://avatars2.githubusercontent.com/u/1287829?v=4?s=100\" width=\"100px;\" alt=\"Thorsten Hoeger\"/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hoegertn\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/tiararodney\"><img src=\"https://avatars.githubusercontent.com/u/56236443?v=4?s=100\" width=\"100px;\" alt=\"Tiara\"/><br /><sub><b>Tiara</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tiararodney\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/tobias-bardino\"><img src=\"https://avatars.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"Tobias\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tobias-bardino\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://windyroad.com.au/\"><img src=\"https://avatars.githubusercontent.com/u/7802440?v=4?s=100\" width=\"100px;\" alt=\"Tom Howard\"/><br /><sub><b>Tom Howard</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tompahoward\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://dankmemes2020.com/\"><img src=\"https://avatars.githubusercontent.com/u/1083460?v=4?s=100\" width=\"100px;\" alt=\"Tom Keller\"/><br /><sub><b>Tom Keller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kellertk\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://tlakomy.com/\"><img src=\"https://avatars2.githubusercontent.com/u/16646517?v=4?s=100\" width=\"100px;\" alt=\"Tomasz Łakomy\"/><br /><sub><b>Tomasz Łakomy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tlakomy\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/tmartensen\"><img src=\"https://avatars.githubusercontent.com/u/1750466?v=4?s=100\" width=\"100px;\" alt=\"Travis Martensen\"/><br /><sub><b>Travis Martensen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tmartensen\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/floydspace\"><img src=\"https://avatars.githubusercontent.com/u/5180700?v=4?s=100\" width=\"100px;\" alt=\"Victor Korzunin\"/><br /><sub><b>Victor Korzunin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=floydspace\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/VinayKokate22\"><img src=\"https://avatars.githubusercontent.com/u/114766745?v=4?s=100\" width=\"100px;\" alt=\"VinayKokate22\"/><br /><sub><b>VinayKokate22</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=VinayKokate22\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/vinayak-kukreja\"><img src=\"https://avatars.githubusercontent.com/u/78971045?v=4?s=100\" width=\"100px;\" alt=\"Vinayak Kukreja\"/><br /><sub><b>Vinayak Kukreja</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=vinayak-kukreja\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/vladcos\"><img src=\"https://avatars.githubusercontent.com/u/135833592?v=4?s=100\" width=\"100px;\" alt=\"Vlad Cos\"/><br /><sub><b>Vlad Cos</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=vladcos\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://willdady.com/\"><img src=\"https://avatars.githubusercontent.com/u/204259?v=4?s=100\" width=\"100px;\" alt=\"Will Dady\"/><br /><sub><b>Will Dady</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=willdady\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/yglcode\"><img src=\"https://avatars.githubusercontent.com/u/11893614?v=4?s=100\" width=\"100px;\" alt=\"Yigong Liu\"/><br /><sub><b>Yigong Liu</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yglcode\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rajyan\"><img src=\"https://avatars.githubusercontent.com/u/38206553?v=4?s=100\" width=\"100px;\" alt=\"Yohta Kimura\"/><br /><sub><b>Yohta Kimura</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=rajyan\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/ykageyama-mondo\"><img src=\"https://avatars.githubusercontent.com/u/91044220?v=4?s=100\" width=\"100px;\" alt=\"Yuichi Kageyama\"/><br /><sub><b>Yuichi Kageyama</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=ykageyama-mondo\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://yuval.io/\"><img src=\"https://avatars.githubusercontent.com/u/5735586?v=4?s=100\" width=\"100px;\" alt=\"Yuval\"/><br /><sub><b>Yuval</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yuvalherziger\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/andrestone\"><img src=\"https://avatars1.githubusercontent.com/u/7958086?v=4?s=100\" width=\"100px;\" alt=\"andrestone\"/><br /><sub><b>andrestone</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=andrestone\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/codeLeeek\"><img src=\"https://avatars.githubusercontent.com/u/49740620?v=4?s=100\" width=\"100px;\" alt=\"codeLeeek\"/><br /><sub><b>codeLeeek</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=codeLeeek\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/flyingImer\"><img src=\"https://avatars0.githubusercontent.com/u/1973868?v=4?s=100\" width=\"100px;\" alt=\"flyingImer\"/><br /><sub><b>flyingImer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=flyingImer\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/huaxk\"><img src=\"https://avatars.githubusercontent.com/u/9971591?v=4?s=100\" width=\"100px;\" alt=\"huaxk\"/><br /><sub><b>huaxk</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=huaxk\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/john-tipper\"><img src=\"https://avatars2.githubusercontent.com/u/9730398?v=4?s=100\" width=\"100px;\" alt=\"john-tipper\"/><br /><sub><b>john-tipper</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=john-tipper\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/karlderkaefer\"><img src=\"https://avatars.githubusercontent.com/u/9578480?v=4?s=100\" width=\"100px;\" alt=\"karlderkaefer\"/><br /><sub><b>karlderkaefer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=karlderkaefer\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kmkhr\"><img src=\"https://avatars.githubusercontent.com/u/25603933?v=4?s=100\" width=\"100px;\" alt=\"kmkhr\"/><br /><sub><b>kmkhr</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kmkhr\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/kt-hr\"><img src=\"https://avatars.githubusercontent.com/u/25603933?v=4?s=100\" width=\"100px;\" alt=\"kt-hr\"/><br /><sub><b>kt-hr</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kt-hr\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/lmarsden\"><img src=\"https://avatars.githubusercontent.com/u/51232932?v=4?s=100\" width=\"100px;\" alt=\"lmarsden\"/><br /><sub><b>lmarsden</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lmarsden\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/mtimbs\"><img src=\"https://avatars.githubusercontent.com/u/12463905?v=4?s=100\" width=\"100px;\" alt=\"michaeltimbs\"/><br /><sub><b>michaeltimbs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mtimbs\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/orlandronen1\"><img src=\"https://avatars.githubusercontent.com/u/25987273?v=4?s=100\" width=\"100px;\" alt=\"orlandronen1\"/><br /><sub><b>orlandronen1</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=orlandronen1\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/pvbouwel\"><img src=\"https://avatars.githubusercontent.com/u/463976?v=4?s=100\" width=\"100px;\" alt=\"pvbouwel\"/><br /><sub><b>pvbouwel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pvbouwel\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/suhussai\"><img src=\"https://avatars.githubusercontent.com/u/6500837?v=4?s=100\" width=\"100px;\" alt=\"suhussai\"/><br /><sub><b>suhussai</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=suhussai\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/t0bst4r\"><img src=\"https://avatars.githubusercontent.com/u/82281152?v=4?s=100\" width=\"100px;\" alt=\"t0bst4r\"/><br /><sub><b>t0bst4r</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=t0bst4r\" title=\"Code\">💻</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/tHyt-lab\"><img src=\"https://avatars.githubusercontent.com/u/11361677?v=4?s=100\" width=\"100px;\" alt=\"tHyt-lab\"/><br /><sub><b>tHyt-lab</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tHyt-lab\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/Warkanlock\"><img src=\"https://avatars.githubusercontent.com/u/13340320?v=4?s=100\" width=\"100px;\" alt=\"txxnano\"/><br /><sub><b>txxnano</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Warkanlock\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/vVahe\"><img src=\"https://avatars.githubusercontent.com/u/17318901?v=4?s=100\" width=\"100px;\" alt=\"vVahe\"/><br /><sub><b>vVahe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=vVahe\" title=\"Code\">💻</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/zetashift\"><img src=\"https://avatars.githubusercontent.com/u/1857826?v=4?s=100\" width=\"100px;\" alt=\"zetashift\"/><br /><sub><b>zetashift</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=zetashift\" title=\"Code\">💻</a></td>\n    </tr>\n  </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n## License\n\nDistributed under the [Apache-2.0](./LICENSE) license.\n"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/projen/projen.git"
  },
  "schema": "jsii/0.10.0",
  "submodules": {
    "projen.awscdk": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 52
      },
      "symbolId": "src/awscdk/index:"
    },
    "projen.build": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 56
      },
      "symbolId": "src/build/index:"
    },
    "projen.cdk": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 55
      },
      "symbolId": "src/cdk/index:"
    },
    "projen.cdk8s": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 53
      },
      "symbolId": "src/cdk8s/index:"
    },
    "projen.cdktf": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 54
      },
      "symbolId": "src/cdktf/index:"
    },
    "projen.circleci": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 45
      },
      "symbolId": "src/circleci/index:"
    },
    "projen.github": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 43
      },
      "symbolId": "src/github/index:"
    },
    "projen.github.workflows": {
      "locationInModule": {
        "filename": "src/github/index.ts",
        "line": 25
      },
      "symbolId": "src/github/workflows-model:"
    },
    "projen.gitlab": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 44
      },
      "symbolId": "src/gitlab/index:"
    },
    "projen.java": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 47
      },
      "symbolId": "src/java/index:"
    },
    "projen.javascript": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 50
      },
      "symbolId": "src/javascript/index:"
    },
    "projen.python": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 48
      },
      "symbolId": "src/python/index:"
    },
    "projen.release": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 51
      },
      "symbolId": "src/release/index:"
    },
    "projen.typescript": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 49
      },
      "symbolId": "src/typescript/index:"
    },
    "projen.vscode": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 46
      },
      "symbolId": "src/vscode/index:"
    },
    "projen.web": {
      "locationInModule": {
        "filename": "src/index.ts",
        "line": 42
      },
      "symbolId": "src/web/index:"
    }
  },
  "targets": {
    "go": {
      "moduleName": "github.com/projen/projen-go"
    },
    "java": {
      "maven": {
        "artifactId": "projen",
        "groupId": "io.github.cdklabs"
      },
      "package": "io.github.cdklabs.projen"
    },
    "js": {
      "npm": "projen"
    },
    "python": {
      "distName": "projen",
      "module": "projen"
    }
  },
  "types": {
    "projen.Component": {
      "assembly": "projen",
      "base": "constructs.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a project component."
      },
      "fqn": "projen.Component",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/component.ts",
          "line": 31
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "id",
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/component.ts",
        "line": 21
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Test whether the given construct is a component."
          },
          "locationInModule": {
            "filename": "src/component.ts",
            "line": 25
          },
          "name": "isComponent",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Order is *not* guaranteed.",
            "stability": "experimental",
            "summary": "Called after synthesis."
          },
          "locationInModule": {
            "filename": "src/component.ts",
            "line": 53
          },
          "name": "postSynthesize"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/component.ts",
            "line": 43
          },
          "name": "preSynthesize"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes files to the project output directory."
          },
          "locationInModule": {
            "filename": "src/component.ts",
            "line": 48
          },
          "name": "synthesize"
        }
      ],
      "name": "Component",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/component.ts",
            "line": 29
          },
          "name": "project",
          "type": {
            "fqn": "projen.Project"
          }
        }
      ],
      "symbolId": "src/component:Component"
    },
    "projen.CreateProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.CreateProjectOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/projects.ts",
        "line": 7
      },
      "name": "CreateProjectOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Directory that the project will be generated in."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 11
          },
          "name": "dir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "`projen.typescript.TypescriptProject`",
            "stability": "experimental",
            "summary": "Fully-qualified name of the project type (usually formatted as `projen.module.ProjectType`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 18
          },
          "name": "projectFqn",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Only JSON-like values can be passed in (strings,\nbooleans, numbers, enums, arrays, and objects that are not\nderived from classes).\n\nConsult the API reference of the project type you are generating for\ninformation about what fields and types are available.",
            "stability": "experimental",
            "summary": "Project options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 28
          },
          "name": "projectOptions",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "InitProjectOptionHints.FEATURED",
            "remarks": "Does not apply to projenrc.json files.",
            "stability": "experimental",
            "summary": "Should we render commented-out default options in the projenrc file?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 36
          },
          "name": "optionHints",
          "optional": true,
          "type": {
            "fqn": "projen.InitProjectOptionHints"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "(usually package manager install).",
            "stability": "experimental",
            "summary": "Should we execute post synthesis hooks?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 51
          },
          "name": "post",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Should we call `project.synth()` or instantiate the project (could still have side-effects) and render the .projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 44
          },
          "name": "synth",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/projects:CreateProjectOptions"
    },
    "projen.Dependencies": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "To add a dependency you can use a project-type specific API such as\n`nodeProject.addDeps()` or use the generic API of `project.deps`:",
        "stability": "experimental",
        "summary": "The `Dependencies` component is responsible to track the list of dependencies a project has, and then used by project types as the model for rendering project-specific dependency manifests such as the dependencies section `package.json` files."
      },
      "fqn": "projen.Dependencies",
      "initializer": {
        "docs": {
          "stability": "experimental",
          "summary": "Adds a dependencies component to the project."
        },
        "locationInModule": {
          "filename": "src/dependencies.ts",
          "line": 53
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent project."
            },
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/dependencies.ts",
        "line": 17
      },
      "methods": [
        {
          "docs": {
            "remarks": "Given `foo@^3.4.0` returns `{ name: \"foo\", version: \"^3.4.0\" }`.\nGiven `bar@npm:@bar/legacy` returns `{ name: \"bar\", version: \"npm:@bar/legacy\" }`.",
            "stability": "experimental",
            "summary": "Returns the coordinates of a dependency spec."
          },
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 32
          },
          "name": "parseDependency",
          "parameters": [
            {
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.DependencyCoordinates"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a dependency to this project."
          },
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 135
          },
          "name": "addDependency",
          "parameters": [
            {
              "docs": {
                "summary": "The dependency spec in the format `MODULE[@VERSION]` where `MODULE` is the package-manager-specific module name and `VERSION` is an optional semantic version requirement (e.g. `^3.4.0`)."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The type of the dependency."
              },
              "name": "type",
              "type": {
                "fqn": "projen.DependencyType"
              }
            },
            {
              "name": "metadata",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Dependency"
            }
          }
        },
        {
          "docs": {
            "remarks": "Fails if there is no dependency defined by that name or if `type` is not\nprovided and there is more then one dependency type for this dependency.",
            "returns": "a copy (cannot be modified)",
            "stability": "experimental",
            "summary": "Returns a dependency by name."
          },
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 88
          },
          "name": "getDependency",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the dependency."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "If this dependency is defined only for a\nsingle type, this argument can be omitted.",
                "summary": "The dependency type."
              },
              "name": "type",
              "optional": true,
              "type": {
                "fqn": "projen.DependencyType"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Dependency"
            }
          }
        },
        {
          "docs": {
            "returns": "`true` if the dependency exists and its version satisfies the provided constraint. `false` otherwise.\nNotably returns `false` if a dependency exists, but has no version.",
            "stability": "experimental",
            "summary": "Checks if an existing dependency satisfies a dependency requirement."
          },
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 186
          },
          "name": "isDependencySatisfied",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the dependency to check (without the version)."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The dependency type."
              },
              "name": "type",
              "type": {
                "fqn": "projen.DependencyType"
              }
            },
            {
              "docs": {
                "summary": "The version constraint to check (e.g. `^3.4.0`). The constraint of the dependency must be a subset of the expected range to satisfy the requirements."
              },
              "name": "expectedRange",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Removes a dependency."
          },
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 168
          },
          "name": "removeDependency",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the module to remove (without the version)."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "This is only required if there the\ndependency is defined for multiple types.",
                "summary": "The dependency type."
              },
              "name": "type",
              "optional": true,
              "type": {
                "fqn": "projen.DependencyType"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Returns `undefined` if there is no dependency defined by that name or if\n`type` is not provided and there is more then one dependency type for this\ndependency.",
            "returns": "a copy (cannot be modified) or undefined if there is no match",
            "stability": "experimental",
            "summary": "Returns a dependency by name."
          },
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 114
          },
          "name": "tryGetDependency",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the dependency."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "If this dependency is defined only for a\nsingle type, this argument can be omitted.",
                "summary": "The dependency type."
              },
              "name": "type",
              "optional": true,
              "type": {
                "fqn": "projen.DependencyType"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.Dependency"
            }
          }
        }
      ],
      "name": "Dependencies",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "The project-relative path of the deps manifest file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 21
          },
          "name": "MANIFEST_FILE",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "The list is sorted by type->name->version",
            "stability": "experimental",
            "summary": "A copy of all dependencies recorded for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 72
          },
          "name": "all",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Dependency"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/dependencies:Dependencies"
    },
    "projen.Dependency": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Represents a project dependency."
      },
      "fqn": "projen.Dependency",
      "interfaces": [
        "projen.DependencyCoordinates"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/dependencies.ts",
        "line": 288
      },
      "name": "Dependency",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Which type of dependency this is (runtime, build-time, etc)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 292
          },
          "name": "type",
          "type": {
            "fqn": "projen.DependencyType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Additional JSON metadata associated with the dependency (package manager specific)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 299
          },
          "name": "metadata",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/dependencies:Dependency"
    },
    "projen.DependencyCoordinates": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Coordinates of the dependency (name and version)."
      },
      "fqn": "projen.DependencyCoordinates",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/dependencies.ts",
        "line": 268
      },
      "name": "DependencyCoordinates",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "NOTE: For package managers that use complex coordinates (like Maven), we\nwill codify it into a string somehow.",
            "stability": "experimental",
            "summary": "The package manager name of the dependency (e.g. `leftpad` for npm)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 275
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- requirement is managed by the package manager (e.g. npm/yarn).",
            "stability": "experimental",
            "summary": "Semantic version version requirement."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 282
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/dependencies:DependencyCoordinates"
    },
    "projen.DependencyType": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Type of dependency."
      },
      "fqn": "projen.DependencyType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/dependencies.ts",
        "line": 305
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency is required for the program/library during runtime."
          },
          "name": "RUNTIME"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency is required at runtime but expected to be installed by the consumer."
          },
          "name": "PEER"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency is bundled and shipped with the module, so consumers are not required to install it."
          },
          "name": "BUNDLED"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency is required to run the `build` task."
          },
          "name": "BUILD"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency is required to run the `test` task."
          },
          "name": "TEST"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency is required for development (e.g. IDE plugins)."
          },
          "name": "DEVENV"
        },
        {
          "docs": {
            "remarks": "Available for Node packages",
            "stability": "experimental",
            "summary": "Transient dependency that needs to be overwritten."
          },
          "name": "OVERRIDE"
        },
        {
          "docs": {
            "remarks": "It is expected to be installed by the consumer.",
            "stability": "experimental",
            "summary": "An optional dependency that may be used at runtime if available, but is not required."
          },
          "name": "OPTIONAL"
        }
      ],
      "name": "DependencyType",
      "symbolId": "src/dependencies:DependencyType"
    },
    "projen.DepsManifest": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.DepsManifest",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/dependencies.ts",
        "line": 258
      },
      "name": "DepsManifest",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "All dependencies of this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dependencies.ts",
            "line": 262
          },
          "name": "dependencies",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Dependency"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/dependencies:DepsManifest"
    },
    "projen.DevEnvironmentDockerImage": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Options for specifying the Docker image of the container."
      },
      "fqn": "projen.DevEnvironmentDockerImage",
      "kind": "class",
      "locationInModule": {
        "filename": "src/dev-env.ts",
        "line": 32
      },
      "methods": [
        {
          "docs": {
            "example": "'.gitpod.Docker'",
            "stability": "experimental",
            "summary": "The relative path of a Dockerfile that defines the container contents."
          },
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 47
          },
          "name": "fromFile",
          "parameters": [
            {
              "docs": {
                "summary": "a relative path."
              },
              "name": "dockerFile",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.DevEnvironmentDockerImage"
            }
          },
          "static": true
        },
        {
          "docs": {
            "example": "'ubuntu:latest'",
            "stability": "experimental",
            "summary": "A publicly available Docker image."
          },
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 38
          },
          "name": "fromImage",
          "parameters": [
            {
              "docs": {
                "summary": "a Docker image."
              },
              "name": "image",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.DevEnvironmentDockerImage"
            }
          },
          "static": true
        }
      ],
      "name": "DevEnvironmentDockerImage",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The relative path of a Dockerfile that defines the container contents."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 59
          },
          "name": "dockerFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "A publicly available Docker image."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 54
          },
          "name": "image",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/dev-env:DevEnvironmentDockerImage"
    },
    "projen.DevEnvironmentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Base options for configuring a container-based development environment."
      },
      "fqn": "projen.DevEnvironmentOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/dev-env.ts",
        "line": 6
      },
      "name": "DevEnvironmentOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A Docker image or Dockerfile for the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 10
          },
          "name": "dockerImage",
          "optional": true,
          "type": {
            "fqn": "projen.DevEnvironmentDockerImage"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "An array of ports that should be exposed from the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 20
          },
          "name": "ports",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "An array of tasks that should be run when the container starts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 15
          },
          "name": "tasks",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Task"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "An array of extension IDs that specify the extensions that should be installed inside the container when it is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 26
          },
          "name": "vscodeExtensions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/dev-env:DevEnvironmentOptions"
    },
    "projen.DockerCompose": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Create a docker-compose YAML file."
      },
      "fqn": "projen.DockerCompose",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/docker-compose/docker-compose.ts",
          "line": 162
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "projen.DockerComposeProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose.ts",
        "line": 55
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Create a bind volume that binds a host path to the target path in the container."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 91
          },
          "name": "bindVolume",
          "parameters": [
            {
              "docs": {
                "summary": "Host path name."
              },
              "name": "sourcePath",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Target path name."
              },
              "name": "targetPath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.IDockerComposeVolumeBinding"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If you use this\nnamed volume in several services, the volume will be shared. In this\ncase, the volume configuration of the first-provided options are used.",
            "stability": "experimental",
            "summary": "Create a named volume and mount it to the target path."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 115
          },
          "name": "namedVolume",
          "parameters": [
            {
              "docs": {
                "summary": "Name of the volume."
              },
              "name": "volumeName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Target path."
              },
              "name": "targetPath",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "volume configuration (default: docker compose defaults)."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.DockerComposeVolumeConfig"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.IDockerComposeVolumeBinding"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If you use this\nnamed network in several services, the network will be shared. In this\ncase, the network configuration of the first-provided options are used.",
            "stability": "experimental",
            "summary": "Create a named network and mount it to the target path."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 141
          },
          "name": "network",
          "parameters": [
            {
              "docs": {
                "summary": "Name of the network."
              },
              "name": "networkName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "network configuration."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.DockerComposeNetworkConfig"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.IDockerComposeNetworkBinding"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Create a port mapping."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 71
          },
          "name": "portMapping",
          "parameters": [
            {
              "docs": {
                "summary": "Published port number."
              },
              "name": "publishedPort",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "Container's port number."
              },
              "name": "targetPort",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "Port mapping options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.DockerComposePortMappingOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.DockerComposeServicePort"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Depends on a service name."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 59
          },
          "name": "serviceName",
          "parameters": [
            {
              "name": "serviceName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.IDockerComposeServiceName"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a service to the docker-compose file."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 190
          },
          "name": "addService",
          "parameters": [
            {
              "docs": {
                "summary": "name of the service."
              },
              "name": "serviceName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "a service description."
              },
              "name": "description",
              "type": {
                "fqn": "projen.DockerComposeServiceDescription"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.DockerComposeService"
            }
          }
        }
      ],
      "name": "DockerCompose",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The Docker Compose file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 157
          },
          "name": "file",
          "type": {
            "fqn": "projen.YamlFile"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose:DockerCompose"
    },
    "projen.DockerComposeBuild": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Build arguments for creating a docker image."
      },
      "fqn": "projen.DockerComposeBuild",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose.ts",
        "line": 214
      },
      "name": "DockerComposeBuild",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Docker build context directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 218
          },
          "name": "context",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none are provided",
            "stability": "experimental",
            "summary": "Build args."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 230
          },
          "name": "args",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"Dockerfile\"",
            "stability": "experimental",
            "summary": "A dockerfile to build from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 224
          },
          "name": "dockerfile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose:DockerComposeBuild"
    },
    "projen.DockerComposeNetworkConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Network configuration."
      },
      "fqn": "projen.DockerComposeNetworkConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-network.ts",
        "line": 32
      },
      "name": "DockerComposeNetworkConfig",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- unset",
            "stability": "experimental",
            "summary": "Set to true to indicate that standalone containers can attach to this network, in addition to services."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 67
          },
          "name": "attachable",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset",
            "stability": "experimental",
            "summary": "Set to true to indicate that the network is a bridge network."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 49
          },
          "name": "bridge",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- value is not provided",
            "stability": "experimental",
            "summary": "Driver to use for the network."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 37
          },
          "name": "driver",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- value is not provided",
            "remarks": "Those options are driver-dependent - consult the driver’s documentation for more information",
            "stability": "experimental",
            "summary": "Options for the configured driver."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 43
          },
          "name": "driverOpts",
          "optional": true,
          "type": {
            "primitive": "json"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset, indicating that docker-compose creates the network",
            "stability": "experimental",
            "summary": "Set to true to indicate that the network is externally created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 61
          },
          "name": "external",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset",
            "stability": "experimental",
            "summary": "Set to true to indicate that you want to create an externally isolated overlay network."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 79
          },
          "name": "internal",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset",
            "stability": "experimental",
            "summary": "Specify custom IPAM config."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 73
          },
          "name": "ipam",
          "optional": true,
          "type": {
            "fqn": "projen.DockerComposeNetworkIpamConfig"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset",
            "stability": "experimental",
            "summary": "Attach labels to the network."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 85
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset, indicating that docker-compose creates networks as usual",
            "stability": "experimental",
            "summary": "Name of the network for when the network name isn't going to work in YAML."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 91
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset",
            "stability": "experimental",
            "summary": "Set to true to indicate that the network is an overlay network."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 55
          },
          "name": "overlay",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-network:DockerComposeNetworkConfig"
    },
    "projen.DockerComposeNetworkIpamConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "IPAM configuration."
      },
      "fqn": "projen.DockerComposeNetworkIpamConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-network.ts",
        "line": 15
      },
      "name": "DockerComposeNetworkIpamConfig",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- value is not provided",
            "stability": "experimental",
            "summary": "A list with zero or more config blocks specifying custom IPAM configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 26
          },
          "name": "config",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.DockerComposeNetworkIpamSubnetConfig"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- value is not provided",
            "stability": "experimental",
            "summary": "Driver to use for custom IPAM config."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 20
          },
          "name": "driver",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-network:DockerComposeNetworkIpamConfig"
    },
    "projen.DockerComposeNetworkIpamSubnetConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "IPAM subnet configuration."
      },
      "fqn": "projen.DockerComposeNetworkIpamSubnetConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-network.ts",
        "line": 4
      },
      "name": "DockerComposeNetworkIpamSubnetConfig",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- value is not provided",
            "stability": "experimental",
            "summary": "Subnet in CIDR format that represents a network segment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 9
          },
          "name": "subnet",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-network:DockerComposeNetworkIpamSubnetConfig"
    },
    "projen.DockerComposePortMappingOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for port mappings."
      },
      "fqn": "projen.DockerComposePortMappingOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-port.ts",
        "line": 4
      },
      "name": "DockerComposePortMappingOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "DockerComposeProtocol.TCP",
            "stability": "experimental",
            "summary": "Port mapping protocol."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-port.ts",
            "line": 9
          },
          "name": "protocol",
          "optional": true,
          "type": {
            "fqn": "projen.DockerComposeProtocol"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-port:DockerComposePortMappingOptions"
    },
    "projen.DockerComposeProps": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Props for DockerCompose."
      },
      "fqn": "projen.DockerComposeProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose.ts",
        "line": 30
      },
      "name": "DockerComposeProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no name is added",
            "example": "'myname' yields 'docker-compose.myname.yml'",
            "stability": "experimental",
            "summary": "A name to add to the docker-compose.yml filename."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 36
          },
          "name": "nameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no version is provided",
            "deprecated": "- The top level `version` field is obsolete per the Compose Specification.\n{@link https://github.com/compose-spec/compose-spec/blob/master/spec.md#version-and-name-top-level-elements Compose Specification}",
            "stability": "deprecated",
            "summary": "Docker Compose schema version do be used."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 44
          },
          "name": "schemaVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Service descriptions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose.ts",
            "line": 49
          },
          "name": "services",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.DockerComposeServiceDescription"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose:DockerComposeProps"
    },
    "projen.DockerComposeProtocol": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Network protocol for port mapping."
      },
      "fqn": "projen.DockerComposeProtocol",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-port.ts",
        "line": 40
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "TCP protocol."
          },
          "name": "TCP"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "UDP protocol."
          },
          "name": "UDP"
        }
      ],
      "name": "DockerComposeProtocol",
      "symbolId": "src/docker-compose/docker-compose-port:DockerComposeProtocol"
    },
    "projen.DockerComposeService": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "A docker-compose service."
      },
      "fqn": "projen.DockerComposeService",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/docker-compose/docker-compose-service.ts",
          "line": 87
        },
        "parameters": [
          {
            "docs": {
              "summary": "The name of the docker compose service."
            },
            "name": "serviceName",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "serviceDescription",
            "type": {
              "fqn": "projen.DockerComposeServiceDescription"
            }
          }
        ]
      },
      "interfaces": [
        "projen.IDockerComposeServiceName"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-service.ts",
        "line": 22
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Make the service depend on another service."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 144
          },
          "name": "addDependsOn",
          "parameters": [
            {
              "name": "serviceName",
              "type": {
                "fqn": "projen.IDockerComposeServiceName"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add an environment variable."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 136
          },
          "name": "addEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "environment variable name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "value of the environment variable."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a label."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 169
          },
          "name": "addLabel",
          "parameters": [
            {
              "docs": {
                "summary": "environment variable name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "value of the environment variable."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a network to the service."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 160
          },
          "name": "addNetwork",
          "parameters": [
            {
              "name": "network",
              "type": {
                "fqn": "projen.IDockerComposeNetworkBinding"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a port mapping."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 121
          },
          "name": "addPort",
          "parameters": [
            {
              "docs": {
                "summary": "Published port number."
              },
              "name": "publishedPort",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "Container's port number."
              },
              "name": "targetPort",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "Port mapping options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.DockerComposePortMappingOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a volume to the service."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 152
          },
          "name": "addVolume",
          "parameters": [
            {
              "name": "volume",
              "type": {
                "fqn": "projen.IDockerComposeVolumeBinding"
              }
            }
          ]
        }
      ],
      "name": "DockerComposeService",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Other services that this service depends on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 51
          },
          "name": "dependsOn",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.IDockerComposeServiceName"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Environment variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 71
          },
          "name": "environment",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Attached labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 76
          },
          "name": "labels",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Networks mounted in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 61
          },
          "name": "networks",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.IDockerComposeNetworkBinding"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Published ports."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 66
          },
          "name": "ports",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.DockerComposeServicePort"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Name of the service."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 26
          },
          "name": "serviceName",
          "overrides": "projen.IDockerComposeServiceName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Volumes mounted in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 56
          },
          "name": "volumes",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.IDockerComposeVolumeBinding"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Command to run in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 41
          },
          "name": "command",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Entrypoint to run in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 46
          },
          "name": "entrypoint",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Docker image."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 31
          },
          "name": "image",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Docker image build instructions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 36
          },
          "name": "imageBuild",
          "optional": true,
          "type": {
            "fqn": "projen.DockerComposeBuild"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Target platform."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 80
          },
          "name": "platform",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Run in privileged mode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 85
          },
          "name": "privileged",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-service:DockerComposeService"
    },
    "projen.DockerComposeServiceDescription": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Description of a docker-compose.yml service."
      },
      "fqn": "projen.DockerComposeServiceDescription",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-service.ts",
        "line": 177
      },
      "name": "DockerComposeServiceDescription",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- use the container's default command",
            "stability": "experimental",
            "summary": "Provide a command to the docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 196
          },
          "name": "command",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no dependencies",
            "stability": "experimental",
            "summary": "Names of other services this service depends on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 207
          },
          "name": "dependsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.IDockerComposeServiceName"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Entrypoint to run in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 201
          },
          "name": "entrypoint",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no environment variables are provided",
            "stability": "experimental",
            "summary": "Add environment variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 233
          },
          "name": "environment",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Note: You must specify either `build` or `image` key.",
            "see": "imageBuild",
            "stability": "experimental",
            "summary": "Use a docker image."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 183
          },
          "name": "image",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Note: You must specify either `imageBuild` or `image` key.",
            "see": "image",
            "stability": "experimental",
            "summary": "Build a docker image."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 190
          },
          "name": "imageBuild",
          "optional": true,
          "type": {
            "fqn": "projen.DockerComposeBuild"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no labels are provided",
            "stability": "experimental",
            "summary": "Add labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 239
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "DockerCompose.network () to create & mount a named network",
            "stability": "experimental",
            "summary": "Add some networks to the service."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 221
          },
          "name": "networks",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.IDockerComposeNetworkBinding"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no platform is provided",
            "stability": "experimental",
            "summary": "Add platform."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 244
          },
          "name": "platform",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no ports are mapped",
            "stability": "experimental",
            "summary": "Map some ports."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 227
          },
          "name": "ports",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.DockerComposeServicePort"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no privileged mode flag is provided",
            "stability": "experimental",
            "summary": "Run in privileged mode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 250
          },
          "name": "privileged",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Use one of the following to create volumes:",
            "see": "DockerCompose.namedVolume () to create & mount a named volume",
            "stability": "experimental",
            "summary": "Mount some volumes into the service."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 215
          },
          "name": "volumes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.IDockerComposeVolumeBinding"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-service:DockerComposeServiceDescription"
    },
    "projen.DockerComposeServicePort": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A service port mapping."
      },
      "fqn": "projen.DockerComposeServicePort",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-port.ts",
        "line": 15
      },
      "name": "DockerComposeServicePort",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Port mapping mode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-port.ts",
            "line": 34
          },
          "name": "mode",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Network protocol."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-port.ts",
            "line": 29
          },
          "name": "protocol",
          "type": {
            "fqn": "projen.DockerComposeProtocol"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Published port number."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-port.ts",
            "line": 19
          },
          "name": "published",
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Target port number."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-port.ts",
            "line": 24
          },
          "name": "target",
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-port:DockerComposeServicePort"
    },
    "projen.DockerComposeVolumeConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Volume configuration."
      },
      "fqn": "projen.DockerComposeVolumeConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-volume.ts",
        "line": 4
      },
      "name": "DockerComposeVolumeConfig",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- value is not provided",
            "stability": "experimental",
            "summary": "Driver to use for the volume."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 9
          },
          "name": "driver",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options to provide to the driver."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 14
          },
          "name": "driverOpts",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset, indicating that docker-compose creates the volume",
            "stability": "experimental",
            "summary": "Set to true to indicate that the volume is externally created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 20
          },
          "name": "external",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- unset, indicating that docker-compose creates volumes as usual",
            "stability": "experimental",
            "summary": "Name of the volume for when the volume name isn't going to work in YAML."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 26
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-volume:DockerComposeVolumeConfig"
    },
    "projen.DockerComposeVolumeMount": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Service volume mounting information."
      },
      "fqn": "projen.DockerComposeVolumeMount",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-volume.ts",
        "line": 60
      },
      "name": "DockerComposeVolumeMount",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Volume source."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 69
          },
          "name": "source",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Volume target."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 74
          },
          "name": "target",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Type of volume."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 64
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-volume:DockerComposeVolumeMount"
    },
    "projen.EndOfLine": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The end of line characters supported by git."
      },
      "fqn": "projen.EndOfLine",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitattributes.ts",
        "line": 7
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maintain existing (mixed values within one file are normalised by looking at what's used after the first line)."
          },
          "name": "AUTO"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Carriage Return + Line Feed characters (\\r\\n), common on Windows."
          },
          "name": "CRLF"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos."
          },
          "name": "LF"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Disable and do not configure the end of line character."
          },
          "name": "NONE"
        }
      ],
      "name": "EndOfLine",
      "symbolId": "src/gitattributes:EndOfLine"
    },
    "projen.FileBase": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.FileBase",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/file.ts",
          "line": 95
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.FileBaseOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/file.ts",
        "line": 55
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Writes the file to the project's output directory."
          },
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 154
          },
          "name": "synthesize",
          "overrides": "projen.Component"
        },
        {
          "abstract": true,
          "docs": {
            "returns": "the content to synthesize or undefined to skip the file",
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 149
          },
          "name": "synthesizeContent",
          "parameters": [
            {
              "docs": {
                "summary": "Call `resolver.resolve(obj)` on any objects in order to resolve token functions."
              },
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "FileBase",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The absolute path of this file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 74
          },
          "name": "absolutePath",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The file path, relative to the project's outdir."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 59
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "This property is\nonly available in `postSynthesize()` hooks. If this is `undefined`, the\nfile has not been synthesized yet.",
            "stability": "experimental",
            "summary": "Indicates if the file has been changed during synthesis."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 221
          },
          "name": "changed",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "remarks": "Value is undefined if the project is being ejected.",
            "stability": "experimental",
            "summary": "The projen marker, used to identify files as projen-generated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 84
          },
          "name": "marker",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Indicates if the file should be marked as executable."
          },
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 69
          },
          "name": "executable",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Indicates if the file should be read-only or read-write."
          },
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 64
          },
          "name": "readonly",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/file:FileBase"
    },
    "projen.FileBaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.FileBaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/file.ts",
        "line": 17
      },
      "name": "FileBaseOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "By\ndefault, all generated files are committed and anti-tamper is used to\nprotect against manual modifications.",
            "stability": "experimental",
            "summary": "Indicates whether this file should be committed to git or ignored."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 25
          },
          "name": "committed",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Update the project's .gitignore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 31
          },
          "name": "editGitignore",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether the generated file should be marked as executable."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 45
          },
          "name": "executable",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- marker will be included as long as the project is not ejected",
            "stability": "experimental",
            "summary": "Adds the projen marker to the file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 52
          },
          "name": "marker",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Whether the generated file should be readonly."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 38
          },
          "name": "readonly",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/file:FileBaseOptions"
    },
    "projen.GitAttributesFile": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "see": "https://git-scm.com/docs/gitattributes",
        "stability": "experimental",
        "summary": "Assign attributes to file names in a git repository."
      },
      "fqn": "projen.GitAttributesFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/gitattributes.ts",
          "line": 57
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.GitAttributesFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/gitattributes.ts",
        "line": 49
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maps a set of attributes to a set of files."
          },
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 82
          },
          "name": "addAttributes",
          "parameters": [
            {
              "docs": {
                "summary": "Glob pattern to match files in the repo."
              },
              "name": "glob",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Attributes to assign to these files."
              },
              "name": "attributes",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add attributes necessary to mark these files as stored in LFS."
          },
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 95
          },
          "name": "addLfsPattern",
          "parameters": [
            {
              "name": "glob",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 108
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 114
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "_",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "GitAttributesFile",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The default end of line character for text files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 55
          },
          "name": "endOfLine",
          "type": {
            "fqn": "projen.EndOfLine"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whether the current gitattributes file has any LFS patterns."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 102
          },
          "name": "hasLfsPatterns",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/gitattributes:GitAttributesFile"
    },
    "projen.GitAttributesFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `GitAttributesFile`."
      },
      "fqn": "projen.GitAttributesFileOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitattributes.ts",
        "line": 33
      },
      "name": "GitAttributesFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "EndOfLine.LF",
            "remarks": "endOfLine it's useful to keep the same end of line between Windows and Unix operative systems for git checking/checkout operations. Hence, it can avoid simple repository mutations consisting only of changes in the end of line characters. It will be set in the first line of the .gitattributes file to make it the first match with high priority but it can be overriden in a later line. Can be disabled by setting explicitly: `{ endOfLine: EndOfLine.NONE }`.",
            "stability": "experimental",
            "summary": "The default end of line character for text files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitattributes.ts",
            "line": 41
          },
          "name": "endOfLine",
          "optional": true,
          "type": {
            "fqn": "projen.EndOfLine"
          }
        }
      ],
      "symbolId": "src/gitattributes:GitAttributesFileOptions"
    },
    "projen.GitOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Git configuration options."
      },
      "fqn": "projen.GitOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/project.ts",
        "line": 131
      },
      "name": "GitOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "EndOfLine.LF",
            "remarks": "endOfLine it's useful to keep the same end of line between Windows and Unix operative systems for git checking/checkout operations.\nHence, it can avoid simple repository mutations consisting only of changes in the end of line characters.\nIt will be set in the first line of the .gitattributes file to make it the first match with high priority but it can be overriden in a later line.\nCan be disabled by setting: `endOfLine: EndOfLine.NONE`.",
            "stability": "experimental",
            "summary": "The default end of line character for text files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 149
          },
          "name": "endOfLine",
          "optional": true,
          "type": {
            "fqn": "projen.EndOfLine"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No files stored in LFS",
            "stability": "experimental",
            "summary": "File patterns to mark as stored in Git LFS."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 137
          },
          "name": "lfsPatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/project:GitOptions"
    },
    "projen.Gitpod": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "The Gitpod component which emits .gitpod.yml."
      },
      "fqn": "projen.Gitpod",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/gitpod.ts",
          "line": 287
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.GitpodOptions"
            }
          }
        ]
      },
      "interfaces": [
        "projen.IDevEnvironment"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 275
      },
      "methods": [
        {
          "docs": {
            "remarks": "By default, all tasks will be run in parallel. To run tasks in sequence,\ncreate a new `Task` and set the other tasks as subtasks.",
            "stability": "experimental",
            "summary": "Add a task with more granular options."
          },
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 373
          },
          "name": "addCustomTask",
          "parameters": [
            {
              "docs": {
                "summary": "The task parameters."
              },
              "name": "options",
              "type": {
                "fqn": "projen.GitpodTask"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a custom Docker image or Dockerfile for the container."
          },
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 333
          },
          "name": "addDockerImage",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The Docker image."
              },
              "name": "image",
              "type": {
                "fqn": "projen.DevEnvironmentDockerImage"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add ports that should be exposed (forwarded) from the container."
          },
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 390
          },
          "name": "addPorts",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The new ports."
              },
              "name": "ports",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a prebuilds configuration for the Gitpod App."
          },
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 361
          },
          "name": "addPrebuilds",
          "parameters": [
            {
              "docs": {
                "summary": "The configuration."
              },
              "name": "config",
              "type": {
                "fqn": "projen.GitpodPrebuilds"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "By default, all tasks will be run in parallel. To run tasks in sequence,\ncreate a new `Task` and specify the other tasks as subtasks.",
            "stability": "experimental",
            "summary": "Add tasks to run when gitpod starts."
          },
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 348
          },
          "name": "addTasks",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The new tasks."
              },
              "name": "tasks",
              "type": {
                "fqn": "projen.Task"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "example": "'scala-lang.scala@0.3.9:O5XmjwY5Gz+0oDZAmqneJw=='",
            "remarks": "These must be in the format defined in the Open VSX registry.",
            "see": "https://www.gitpod.io/docs/vscode-extensions/",
            "stability": "experimental",
            "summary": "Add a list of VSCode extensions that should be automatically installed in the container."
          },
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 404
          },
          "name": "addVscodeExtensions",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The extension IDs."
              },
              "name": "extensions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "Gitpod",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Direct access to the gitpod configuration (escape hatch)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 285
          },
          "name": "config",
          "type": {
            "primitive": "any"
          }
        }
      ],
      "symbolId": "src/gitpod:Gitpod"
    },
    "projen.GitpodOnOpen": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "What to do when a service on a port is detected."
      },
      "fqn": "projen.GitpodOnOpen",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 135
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Open a new browser tab."
          },
          "name": "OPEN_BROWSER"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Open a preview on the right side of the IDE."
          },
          "name": "OPEN_PREVIEW"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show a notification asking the user what to do (default)."
          },
          "name": "NOTIFY"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Do nothing."
          },
          "name": "IGNORE"
        }
      ],
      "name": "GitpodOnOpen",
      "symbolId": "src/gitpod:GitpodOnOpen"
    },
    "projen.GitpodOpenIn": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Configure where in the IDE the terminal should be opened."
      },
      "fqn": "projen.GitpodOpenIn",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 56
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "the bottom panel (default)."
          },
          "name": "BOTTOM"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "the left panel."
          },
          "name": "LEFT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "the right panel."
          },
          "name": "RIGHT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "the main editor area."
          },
          "name": "MAIN"
        }
      ],
      "name": "GitpodOpenIn",
      "symbolId": "src/gitpod:GitpodOpenIn"
    },
    "projen.GitpodOpenMode": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Configure how the terminal should be opened relative to the previous task."
      },
      "fqn": "projen.GitpodOpenMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 26
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Opens in the same tab group right after the previous tab."
          },
          "name": "TAB_AFTER"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Opens in the same tab group left before the previous tab."
          },
          "name": "TAB_BEFORE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Splits and adds the terminal to the right."
          },
          "name": "SPLIT_RIGHT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Splits and adds the terminal to the left."
          },
          "name": "SPLIT_LEFT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Splits and adds the terminal to the top."
          },
          "name": "SPLIT_TOP"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Splits and adds the terminal to the bottom."
          },
          "name": "SPLIT_BOTTOM"
        }
      ],
      "name": "GitpodOpenMode",
      "symbolId": "src/gitpod:GitpodOpenMode"
    },
    "projen.GitpodOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "By default, Gitpod uses the 'gitpod/workspace-full' docker image.",
        "see": "https://github.com/gitpod-io/workspace-images/blob/master/full/Dockerfile\n\nBy default, all tasks will be run in parallel. To run the tasks in sequence,\ncreate a new task and specify the other tasks as subtasks.",
        "stability": "experimental",
        "summary": "Constructor options for the Gitpod component."
      },
      "fqn": "projen.GitpodOptions",
      "interfaces": [
        "projen.DevEnvironmentOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 262
      },
      "name": "GitpodOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Optional Gitpod's Github App integration for prebuilds If this is not set and Gitpod's Github App is installed, then Gitpod will apply these defaults: https://www.gitpod.io/docs/prebuilds/#configure-the-github-app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 269
          },
          "name": "prebuilds",
          "optional": true,
          "type": {
            "fqn": "projen.GitpodPrebuilds"
          }
        }
      ],
      "symbolId": "src/gitpod:GitpodOptions"
    },
    "projen.GitpodPort": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for an exposed port on Gitpod."
      },
      "fqn": "projen.GitpodPort",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 175
      },
      "name": "GitpodPort",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "GitpodOnOpen.NOTIFY",
            "stability": "experimental",
            "summary": "What to do when a service on a port is detected."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 188
          },
          "name": "onOpen",
          "optional": true,
          "type": {
            "fqn": "projen.GitpodOnOpen"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"8080\"",
            "stability": "experimental",
            "summary": "A port that should be exposed (forwarded) from the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 181
          },
          "name": "port",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "GitpodPortVisibility.PUBLIC",
            "stability": "experimental",
            "summary": "Whether the port visibility should be private or public."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 195
          },
          "name": "visibility",
          "optional": true,
          "type": {
            "fqn": "projen.GitpodPortVisibility"
          }
        }
      ],
      "symbolId": "src/gitpod:GitpodPort"
    },
    "projen.GitpodPortVisibility": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Whether the port visibility should be private or public."
      },
      "fqn": "projen.GitpodPortVisibility",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 160
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Allows everyone with the port URL to access the port (default)."
          },
          "name": "PUBLIC"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Only allows users with workspace access to access the port."
          },
          "name": "PRIVATE"
        }
      ],
      "name": "GitpodPortVisibility",
      "symbolId": "src/gitpod:GitpodPortVisibility"
    },
    "projen.GitpodPrebuilds": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Currently only GitHub is supported.",
        "see": "https://www.gitpod.io/docs/prebuilds/",
        "stability": "experimental",
        "summary": "Configure the Gitpod App for prebuilds."
      },
      "fqn": "projen.GitpodPrebuilds",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 203
      },
      "name": "GitpodPrebuilds",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Add a \"Review in Gitpod\" button to the pull request's description."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 244
          },
          "name": "addBadge",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Add a check to pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 232
          },
          "name": "addCheck",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Add a \"Review in Gitpod\" button as a comment to pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 238
          },
          "name": "addComment",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Add a label once the prebuild is ready to pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 250
          },
          "name": "addLabel",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable for all branches in this repo."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 214
          },
          "name": "branches",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Enable for the master/default branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 208
          },
          "name": "master",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Enable for pull requests coming from this repo."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 220
          },
          "name": "pullRequests",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable for pull requests coming from forks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 226
          },
          "name": "pullRequestsFromForks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/gitpod:GitpodPrebuilds"
    },
    "projen.GitpodTask": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Start Mode         | Execution\nFresh Workspace    | before && init && command\nRestart Workspace  | before && command\nSnapshot           | before && command\nPrebuild           | before && init && prebuild",
        "stability": "experimental",
        "summary": "Configure options for a task to be run when opening a Gitpod workspace (e.g. running tests, or starting a dev server)."
      },
      "fqn": "projen.GitpodTask",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitpod.ts",
        "line": 85
      },
      "name": "GitpodTask",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The shell command to run",
            "stability": "experimental",
            "summary": "Required."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 89
          },
          "name": "command",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "",
            "stability": "experimental",
            "summary": "In case you need to run something even before init, that is a requirement for both init and command, you can use the before property."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 114
          },
          "name": "before",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "",
            "remarks": "Such tasks are usually builds or downloading\ndependencies. Anything you only want to do once but not when you restart a workspace or start a snapshot.",
            "stability": "experimental",
            "summary": "The init property can be used to specify shell commands that should only be executed after a workspace was freshly cloned and needs to be initialized somehow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 122
          },
          "name": "init",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- task names are omitted when blank",
            "stability": "experimental",
            "summary": "A name for this task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 95
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "GitpodOpenIn.BOTTOM",
            "stability": "experimental",
            "summary": "You can configure where in the IDE the terminal should be opened."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 107
          },
          "name": "openIn",
          "optional": true,
          "type": {
            "fqn": "projen.GitpodOpenIn"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "GitpodOpenMode.TAB_AFTER",
            "stability": "experimental",
            "summary": "You can configure how the terminal should be opened relative to the previous task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 101
          },
          "name": "openMode",
          "optional": true,
          "type": {
            "fqn": "projen.GitpodOpenMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "",
            "remarks": "It is meant to run additional long running\nprocesses that could be useful, e.g. running test suites.",
            "stability": "experimental",
            "summary": "The optional prebuild command will be executed during prebuilds."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitpod.ts",
            "line": 129
          },
          "name": "prebuild",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitpod:GitpodTask"
    },
    "projen.GroupRunnerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.GroupRunnerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/runner-options.ts",
        "line": 1
      },
      "name": "GroupRunnerOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/runner-options.ts",
            "line": 2
          },
          "name": "group",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/runner-options.ts",
            "line": 3
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/runner-options:GroupRunnerOptions"
    },
    "projen.ICompareString": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.ICompareString",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/compare.ts",
        "line": 1
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "returns": "It is expected to return a negative value if the first argument is less than the second argument, zero if they're equal, and a positive value otherwise.",
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/compare.ts",
            "line": 8
          },
          "name": "compare",
          "parameters": [
            {
              "docs": {
                "summary": "The first string."
              },
              "name": "a",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The second string."
              },
              "name": "b",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        }
      ],
      "name": "ICompareString",
      "symbolId": "src/compare:ICompareString"
    },
    "projen.IDevEnvironment": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Abstract interface for container-based development environments, such as Gitpod and GitHub Codespaces."
      },
      "fqn": "projen.IDevEnvironment",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/dev-env.ts",
        "line": 68
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Add a custom Docker image or Dockerfile for the container."
          },
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 74
          },
          "name": "addDockerImage",
          "parameters": [
            {
              "docs": {
                "summary": "The Docker image."
              },
              "name": "image",
              "type": {
                "fqn": "projen.DevEnvironmentDockerImage"
              }
            }
          ]
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds ports that should be exposed (forwarded) from the container."
          },
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 88
          },
          "name": "addPorts",
          "parameters": [
            {
              "docs": {
                "summary": "The new ports."
              },
              "name": "ports",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds tasks to run when the container starts."
          },
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 81
          },
          "name": "addTasks",
          "parameters": [
            {
              "docs": {
                "summary": "The new tasks."
              },
              "name": "tasks",
              "type": {
                "fqn": "projen.Task"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds a list of VSCode extensions that should be automatically installed in the container."
          },
          "locationInModule": {
            "filename": "src/dev-env.ts",
            "line": 96
          },
          "name": "addVscodeExtensions",
          "parameters": [
            {
              "docs": {
                "summary": "The extension IDs."
              },
              "name": "extensions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "IDevEnvironment",
      "symbolId": "src/dev-env:IDevEnvironment"
    },
    "projen.IDockerComposeNetworkBinding": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Network binding information."
      },
      "fqn": "projen.IDockerComposeNetworkBinding",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-network.ts",
        "line": 97
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "returns": "the service name",
            "stability": "experimental",
            "summary": "Binds the requested network to the docker-compose network configuration and provide mounting instructions for synthesis."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 104
          },
          "name": "bind",
          "parameters": [
            {
              "docs": {
                "summary": "the network configuration."
              },
              "name": "networkConfig",
              "type": {
                "fqn": "projen.IDockerComposeNetworkConfig"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "IDockerComposeNetworkBinding",
      "symbolId": "src/docker-compose/docker-compose-network:IDockerComposeNetworkBinding"
    },
    "projen.IDockerComposeNetworkConfig": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Storage for network configuration."
      },
      "fqn": "projen.IDockerComposeNetworkConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-network.ts",
        "line": 110
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Add network configuration to the repository."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-network.ts",
            "line": 116
          },
          "name": "addNetworkConfiguration",
          "parameters": [
            {
              "name": "networkName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "configuration",
              "type": {
                "fqn": "projen.DockerComposeNetworkConfig"
              }
            }
          ]
        }
      ],
      "name": "IDockerComposeNetworkConfig",
      "symbolId": "src/docker-compose/docker-compose-network:IDockerComposeNetworkConfig"
    },
    "projen.IDockerComposeServiceName": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "An interface providing the name of a docker compose service."
      },
      "fqn": "projen.IDockerComposeServiceName",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-service.ts",
        "line": 12
      },
      "name": "IDockerComposeServiceName",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the docker compose service."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-service.ts",
            "line": 16
          },
          "name": "serviceName",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/docker-compose/docker-compose-service:IDockerComposeServiceName"
    },
    "projen.IDockerComposeVolumeBinding": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Volume binding information."
      },
      "fqn": "projen.IDockerComposeVolumeBinding",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-volume.ts",
        "line": 32
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "returns": "mounting instructions for the service.",
            "stability": "experimental",
            "summary": "Binds the requested volume to the docker-compose volume configuration and provide mounting instructions for synthesis."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 39
          },
          "name": "bind",
          "parameters": [
            {
              "docs": {
                "summary": "the volume configuration."
              },
              "name": "volumeConfig",
              "type": {
                "fqn": "projen.IDockerComposeVolumeConfig"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.DockerComposeVolumeMount"
            }
          }
        }
      ],
      "name": "IDockerComposeVolumeBinding",
      "symbolId": "src/docker-compose/docker-compose-volume:IDockerComposeVolumeBinding"
    },
    "projen.IDockerComposeVolumeConfig": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Storage for volume configuration."
      },
      "fqn": "projen.IDockerComposeVolumeConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/docker-compose/docker-compose-volume.ts",
        "line": 45
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Add volume configuration to the repository."
          },
          "locationInModule": {
            "filename": "src/docker-compose/docker-compose-volume.ts",
            "line": 51
          },
          "name": "addVolumeConfiguration",
          "parameters": [
            {
              "name": "volumeName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "configuration",
              "type": {
                "fqn": "projen.DockerComposeVolumeConfig"
              }
            }
          ]
        }
      ],
      "name": "IDockerComposeVolumeConfig",
      "symbolId": "src/docker-compose/docker-compose-volume:IDockerComposeVolumeConfig"
    },
    "projen.IResolvable": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.IResolvable",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/file.ts",
        "line": 256
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Resolves and returns content."
          },
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 260
          },
          "name": "toJSON",
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "IResolvable",
      "symbolId": "src/file:IResolvable"
    },
    "projen.IResolver": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "API for resolving tokens when synthesizing file content."
      },
      "fqn": "projen.IResolver",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/file.ts",
        "line": 229
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "package": "options Resolve options"
            },
            "stability": "experimental",
            "summary": "Given a value (object/string/array/whatever, looks up any functions inside the object and returns an object where all functions are called."
          },
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 236
          },
          "name": "resolve",
          "parameters": [
            {
              "docs": {
                "summary": "The value to resolve."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.ResolveOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "IResolver",
      "symbolId": "src/file:IResolver"
    },
    "projen.IgnoreFile": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.IgnoreFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/ignore-file.ts",
          "line": 39
        },
        "parameters": [
          {
            "docs": {
              "summary": "The project to tie this file to."
            },
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "docs": {
              "summary": "- the relative path in the project to put the file."
            },
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.IgnoreFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/ignore-file.ts",
        "line": 28
      },
      "methods": [
        {
          "docs": {
            "remarks": "Files that match this pattern will be ignored. If the\npattern starts with a negation mark `!`, files that match will _not_ be\nignored.\n\nComment lines (start with `#`) and blank lines (\"\") are filtered by default\nbut can be included using options specified when instantiating the component.",
            "stability": "experimental",
            "summary": "Add ignore patterns."
          },
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 56
          },
          "name": "addPatterns",
          "parameters": [
            {
              "docs": {
                "summary": "Ignore patterns."
              },
              "name": "patterns",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Ignore the files that match these patterns."
          },
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 108
          },
          "name": "exclude",
          "parameters": [
            {
              "docs": {
                "summary": "The patterns to match."
              },
              "name": "patterns",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Always include the specified file patterns."
          },
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 116
          },
          "name": "include",
          "parameters": [
            {
              "docs": {
                "summary": "Patterns to include in git commits."
              },
              "name": "patterns",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "If `addPattern()` is called after this, the pattern will be added again.",
            "stability": "experimental",
            "summary": "Removes patterns previously added from the ignore file."
          },
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 98
          },
          "name": "removePatterns",
          "parameters": [
            {
              "docs": {
                "summary": "patters to remove."
              },
              "name": "patterns",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 126
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "IgnoreFile",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 30
          },
          "name": "filterCommentLines",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 31
          },
          "name": "filterEmptyLines",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/ignore-file:IgnoreFile"
    },
    "projen.IgnoreFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.IgnoreFileOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/ignore-file.ts",
        "line": 5
      },
      "name": "IgnoreFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Filter out comment lines?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 11
          },
          "name": "filterCommentLines",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Filter out blank/empty lines?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 18
          },
          "name": "filterEmptyLines",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Patterns to add to the ignore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/ignore-file.ts",
            "line": 25
          },
          "name": "ignorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/ignore-file:IgnoreFileOptions"
    },
    "projen.IniFile": {
      "assembly": "projen",
      "base": "projen.ObjectFile",
      "docs": {
        "stability": "experimental",
        "summary": "Represents an INI file."
      },
      "fqn": "projen.IniFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/ini.ts",
          "line": 15
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.IniFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/ini.ts",
        "line": 14
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/ini.ts",
            "line": 19
          },
          "name": "synthesizeContent",
          "overrides": "projen.ObjectFile",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "IniFile",
      "symbolId": "src/ini:IniFile"
    },
    "projen.IniFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `IniFile`."
      },
      "fqn": "projen.IniFileOptions",
      "interfaces": [
        "projen.ObjectFileOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/ini.ts",
        "line": 9
      },
      "name": "IniFileOptions",
      "symbolId": "src/ini:IniFileOptions"
    },
    "projen.InitProject": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "It is used to generate projenrc files in various languages.",
        "stability": "experimental",
        "summary": "Information passed from `projen new` to the project object when the project is first created."
      },
      "fqn": "projen.InitProject",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/project.ts",
        "line": 712
      },
      "name": "InitProject",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Initial arguments passed to `projen new`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 721
          },
          "name": "args",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "InitProjectOptionHints.FEATURED",
            "remarks": "Does not apply to projenrc.json files.",
            "stability": "experimental",
            "summary": "Include commented out options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 732
          },
          "name": "comments",
          "type": {
            "fqn": "projen.InitProjectOptionHints"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The JSII FQN of the project type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 716
          },
          "name": "fqn",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Project metadata."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 726
          },
          "name": "type",
          "type": {
            "fqn": "projen.ProjectType"
          }
        }
      ],
      "symbolId": "src/project:InitProject"
    },
    "projen.InitProjectOptionHints": {
      "assembly": "projen",
      "docs": {
        "remarks": "Does not apply to projenrc.json files.",
        "stability": "experimental",
        "summary": "Choices for how to display commented out options in projenrc files."
      },
      "fqn": "projen.InitProjectOptionHints",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/option-hints.ts",
        "line": 5
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Display all possible options (grouped by which interface they belong to)."
          },
          "name": "ALL"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Display only featured options, in alphabetical order."
          },
          "name": "FEATURED"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Display no extra options."
          },
          "name": "NONE"
        }
      ],
      "name": "InitProjectOptionHints",
      "symbolId": "src/option-hints:InitProjectOptionHints"
    },
    "projen.JsonFile": {
      "assembly": "projen",
      "base": "projen.ObjectFile",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a JSON file."
      },
      "fqn": "projen.JsonFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/json.ts",
          "line": 29
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.JsonFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/json.ts",
        "line": 25
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/json.ts",
            "line": 43
          },
          "name": "synthesizeContent",
          "overrides": "projen.ObjectFile",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "JsonFile",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/json.ts",
            "line": 27
          },
          "name": "supportsComments",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/json:JsonFile"
    },
    "projen.JsonFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `JsonFile`."
      },
      "fqn": "projen.JsonFileOptions",
      "interfaces": [
        "projen.ObjectFileOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/json.ts",
        "line": 8
      },
      "name": "JsonFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- false for .json files, true for .json5 and .jsonc files",
            "stability": "experimental",
            "summary": "Allow the use of comments in this file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/json.ts",
            "line": 19
          },
          "name": "allowComments",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Adds a newline at the end of the file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/json.ts",
            "line": 13
          },
          "name": "newline",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/json:JsonFileOptions"
    },
    "projen.JsonPatch": {
      "assembly": "projen",
      "docs": {
        "example": "const output = JsonPatch.apply(input,\n JsonPatch.replace('/world/hi/there', 'goodbye'),\n JsonPatch.add('/world/foo/', 'boom'),\n JsonPatch.remove('/hello'));",
        "remarks": "Use the the `JsonPatch.apply(doc, ...ops)` function to apply a set of\noperations to a JSON document and return the result.\n\nOperations can be created using the factory methods `JsonPatch.add()`,\n`JsonPatch.remove()`, etc.",
        "stability": "experimental",
        "summary": "Utility for applying RFC-6902 JSON-Patch to a document."
      },
      "fqn": "projen.JsonPatch",
      "kind": "class",
      "locationInModule": {
        "filename": "src/json-patch.ts",
        "line": 47
      },
      "methods": [
        {
          "docs": {
            "example": "JsonPatch.add('/biscuits/1', { \"name\": \"Ginger Nut\" })",
            "remarks": "In the case of an\narray, the value is inserted before the given index. The - character can be\nused instead of an index to insert at the end of an array.",
            "stability": "experimental",
            "summary": "Adds a value to an object or inserts it into an array."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 82
          },
          "name": "add",
          "parameters": [
            {
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.JsonPatch"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "The result document",
            "stability": "experimental",
            "summary": "Applies a set of JSON-Patch (RFC-6902) operations to `document` and returns the result."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 54
          },
          "name": "apply",
          "parameters": [
            {
              "docs": {
                "summary": "The document to patch."
              },
              "name": "document",
              "type": {
                "primitive": "any"
              }
            },
            {
              "docs": {
                "summary": "The operations to apply."
              },
              "name": "ops",
              "type": {
                "fqn": "projen.JsonPatch"
              },
              "variadic": true
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          },
          "static": true,
          "variadic": true
        },
        {
          "docs": {
            "example": "JsonPatch.copy('/biscuits/0', '/best_biscuit')",
            "remarks": "Both\nfrom and path are JSON Pointers.",
            "stability": "experimental",
            "summary": "Copies a value from one location to another within the JSON document."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 119
          },
          "name": "copy",
          "parameters": [
            {
              "name": "from",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "path",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.JsonPatch"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "the Escaped path",
            "stability": "experimental",
            "summary": "Escapes a json pointer path."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 160
          },
          "name": "escapePath",
          "parameters": [
            {
              "docs": {
                "summary": "The raw pointer."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "example": "JsonPatch.move('/biscuits', '/cookies')",
            "remarks": "Both from and path are JSON Pointers.",
            "stability": "experimental",
            "summary": "Moves a value from one location to the other."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 128
          },
          "name": "move",
          "parameters": [
            {
              "name": "from",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "path",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.JsonPatch"
            }
          },
          "static": true
        },
        {
          "docs": {
            "example": "JsonPatch.remove('/biscuits/0')",
            "stability": "experimental",
            "summary": "Removes a value from an object or array."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 96
          },
          "name": "remove",
          "parameters": [
            {
              "name": "path",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.JsonPatch"
            }
          },
          "static": true
        },
        {
          "docs": {
            "example": "JsonPatch.replace('/biscuits/0/name', 'Chocolate Digestive')",
            "remarks": "Equivalent to a “remove” followed by an “add”.",
            "stability": "experimental",
            "summary": "Replaces a value."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 105
          },
          "name": "replace",
          "parameters": [
            {
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.JsonPatch"
            }
          },
          "static": true
        },
        {
          "docs": {
            "example": "JsonPatch.test('/best_biscuit/name', 'Choco Leibniz')",
            "remarks": "If the test fails,\nthen the patch as a whole should not apply.",
            "stability": "experimental",
            "summary": "Tests that the specified value is set in the document."
          },
          "locationInModule": {
            "filename": "src/json-patch.ts",
            "line": 138
          },
          "name": "test",
          "parameters": [
            {
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "failureBehavior",
              "optional": true,
              "type": {
                "fqn": "projen.TestFailureBehavior"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.JsonPatch"
            }
          },
          "static": true
        }
      ],
      "name": "JsonPatch",
      "symbolId": "src/json-patch:JsonPatch"
    },
    "projen.License": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.License",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/license.ts",
          "line": 35
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.LicenseOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/license.ts",
        "line": 32
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/license.ts",
            "line": 71
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "_",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "License",
      "symbolId": "src/license:License"
    },
    "projen.LicenseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.LicenseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/license.ts",
        "line": 5
      },
      "name": "LicenseOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "https://github.com/projen/projen/tree/main/license-text for list of supported licenses",
            "stability": "experimental",
            "summary": "License type (SPDX)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/license.ts",
            "line": 11
          },
          "name": "spdx",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "-",
            "remarks": "If the license text has $copyright_owner, this option must be specified.",
            "stability": "experimental",
            "summary": "Copyright owner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/license.ts",
            "line": 20
          },
          "name": "copyrightOwner",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- current year (e.g. \"2020\")",
            "remarks": "The string `$copyright_period` will be substituted with this string.",
            "stability": "experimental",
            "summary": "Period of license (e.g. \"1998-2023\")."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/license.ts",
            "line": 29
          },
          "name": "copyrightPeriod",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/license:LicenseOptions"
    },
    "projen.LogLevel": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Logging verbosity."
      },
      "fqn": "projen.LogLevel",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/logger.ts",
        "line": 136
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "OFF"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ERROR"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "WARN"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "INFO"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEBUG"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "VERBOSE"
        }
      ],
      "name": "LogLevel",
      "symbolId": "src/logger:LogLevel"
    },
    "projen.Logger": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Project-level logging utilities."
      },
      "fqn": "projen.Logger",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/logger.ts",
          "line": 36
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.LoggerOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/logger.ts",
        "line": 32
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Log a message to stderr with DEBUG severity."
          },
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 87
          },
          "name": "debug",
          "parameters": [
            {
              "docs": {
                "summary": "strings or objects to print."
              },
              "name": "text",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Log a message to stderr with ERROR severity."
          },
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 111
          },
          "name": "error",
          "parameters": [
            {
              "docs": {
                "summary": "strings or objects to print."
              },
              "name": "text",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Log a message to stderr with INFO severity."
          },
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 95
          },
          "name": "info",
          "parameters": [
            {
              "docs": {
                "summary": "strings or objects to print."
              },
              "name": "text",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "The message will be\nprinted as long as `logger.level` is set to the message's severity or higher.",
            "stability": "experimental",
            "summary": "Log a message to stderr with a given logging level."
          },
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 54
          },
          "name": "log",
          "parameters": [
            {
              "docs": {
                "summary": "Logging verbosity."
              },
              "name": "level",
              "type": {
                "fqn": "projen.LogLevel"
              }
            },
            {
              "docs": {
                "summary": "strings or objects to print."
              },
              "name": "text",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Log a message to stderr with VERBOSE severity."
          },
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 79
          },
          "name": "verbose",
          "parameters": [
            {
              "docs": {
                "summary": "strings or objects to print."
              },
              "name": "text",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Log a message to stderr with WARN severity."
          },
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 103
          },
          "name": "warn",
          "parameters": [
            {
              "docs": {
                "summary": "strings or objects to print."
              },
              "name": "text",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "Logger",
      "symbolId": "src/logger:Logger"
    },
    "projen.LoggerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for logging utilities."
      },
      "fqn": "projen.LoggerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/logger.ts",
        "line": 12
      },
      "name": "LoggerOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "LogLevel.INFO",
            "remarks": "The levels available (in increasing verbosity) are\nOFF, ERROR, WARN, INFO, DEBUG, and VERBOSE.",
            "stability": "experimental",
            "summary": "The logging verbosity."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 19
          },
          "name": "level",
          "optional": true,
          "type": {
            "fqn": "projen.LogLevel"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Include a prefix for all logging messages with the project name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/logger.ts",
            "line": 26
          },
          "name": "usePrefix",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/logger:LoggerOptions"
    },
    "projen.Makefile": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "stability": "experimental",
        "summary": "Minimal Makefile."
      },
      "fqn": "projen.Makefile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/makefile.ts",
          "line": 71
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.MakefileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/makefile.ts",
        "line": 63
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a target to all."
          },
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 94
          },
          "name": "addAll",
          "parameters": [
            {
              "name": "target",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Makefile"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add multiple targets to all."
          },
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 102
          },
          "name": "addAlls",
          "parameters": [
            {
              "name": "targets",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Makefile"
            }
          },
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a rule to the Makefile."
          },
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 110
          },
          "name": "addRule",
          "parameters": [
            {
              "name": "rule",
              "type": {
                "fqn": "projen.Rule"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Makefile"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add multiple rules to the Makefile."
          },
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 119
          },
          "name": "addRules",
          "parameters": [
            {
              "name": "rules",
              "type": {
                "fqn": "projen.Rule"
              },
              "variadic": true
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Makefile"
            }
          },
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 132
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "Makefile",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "List of rule definitions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 67
          },
          "name": "rules",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Rule"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/makefile:Makefile"
    },
    "projen.MakefileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for Makefiles."
      },
      "fqn": "projen.MakefileOptions",
      "interfaces": [
        "projen.FileBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/makefile.ts",
        "line": 44
      },
      "name": "MakefileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "List of targets to build when Make is invoked without specifying any targets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 50
          },
          "name": "all",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Rules to include in the Makefile."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 57
          },
          "name": "rules",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Rule"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/makefile:MakefileOptions"
    },
    "projen.ObjectFile": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "stability": "experimental",
        "summary": "Represents an Object file."
      },
      "fqn": "projen.ObjectFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/object-file.ts",
          "line": 56
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.ObjectFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/object-file.ts",
        "line": 34
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Syntactic sugar for `addOverride(path, undefined)`."
          },
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 230
          },
          "name": "addDeletionOverride",
          "parameters": [
            {
              "docs": {
                "summary": "The path of the value to delete."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "If the override is nested, separate each nested level using a dot (.) in the path parameter.\nIf there is an array as part of the nesting, specify the index in the path.\n\nTo include a literal `.` in the property name, prefix with a `\\`. In most\nprogramming languages you will need to write this as `\"\\\\.\"` because the\n`\\` itself will need to be escaped.\n\nFor example,\n```typescript\nproject.tsconfig.file.addOverride('compilerOptions.alwaysStrict', true);\nproject.tsconfig.file.addOverride('compilerOptions.lib', ['dom', 'dom.iterable', 'esnext']);\n```\nwould add the overrides\n```json\n\"compilerOptions\": {\n  \"alwaysStrict\": true,\n  \"lib\": [\n    \"dom\",\n    \"dom.iterable\",\n    \"esnext\"\n  ]\n  ...\n}\n...\n```",
            "stability": "experimental",
            "summary": "Adds an override to the synthesized object file."
          },
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 99
          },
          "name": "addOverride",
          "parameters": [
            {
              "docs": {
                "remarks": "Any intermediate keys\nwill be created as needed.",
                "summary": "- The path of the property, you can use dot notation to override values in complex types."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "Could be primitive or complex.",
                "summary": "- The value."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "If the array is nested, separate each nested level using a dot (.) in the path parameter.\nIf there is an array as part of the nesting, specify the index in the path.\n\nTo include a literal `.` in the property name, prefix with a `\\`. In most\nprogramming languages you will need to write this as `\"\\\\.\"` because the\n`\\` itself will need to be escaped.\n\nFor example, with the following object file\n```json\n\"compilerOptions\": {\n  \"exclude\": [\"node_modules\"],\n  \"lib\": [\"es2019\"]\n  ...\n}\n...\n```\n\n```typescript\nproject.tsconfig.file.addToArray('compilerOptions.exclude', 'coverage');\nproject.tsconfig.file.addToArray('compilerOptions.lib', 'dom', 'dom.iterable', 'esnext');\n```\nwould result in the following object file\n```json\n\"compilerOptions\": {\n  \"exclude\": [\"node_modules\", \"coverage\"],\n  \"lib\": [\"es2019\", \"dom\", \"dom.iterable\", \"esnext\"]\n  ...\n}\n...\n```",
            "stability": "experimental",
            "summary": "Adds to an array in the synthesized object file."
          },
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 162
          },
          "name": "addToArray",
          "parameters": [
            {
              "docs": {
                "remarks": "Any intermediate keys\nwill be created as needed.",
                "summary": "- The path of the property, you can use dot notation to att to arrays in complex types."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "Could be primitive or complex.",
                "summary": "- The values to add."
              },
              "name": "values",
              "type": {
                "primitive": "any"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "For example, with the following object file\n```json\n\"compilerOptions\": {\n  \"exclude\": [\"node_modules\"],\n  \"lib\": [\"es2019\"]\n  ...\n}\n...\n```\n\n```typescript\nproject.tsconfig.file.patch(JsonPatch.add(\"/compilerOptions/exclude/-\", \"coverage\"));\nproject.tsconfig.file.patch(JsonPatch.replace(\"/compilerOptions/lib\", [\"dom\", \"dom.iterable\", \"esnext\"]));\n```\nwould result in the following object file\n```json\n\"compilerOptions\": {\n  \"exclude\": [\"node_modules\", \"coverage\"],\n  \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"]\n  ...\n}\n...\n```",
            "stability": "experimental",
            "summary": "Applies an RFC 6902 JSON-patch to the synthesized object file. See https://datatracker.ietf.org/doc/html/rfc6902 for more information."
          },
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 222
          },
          "name": "patch",
          "parameters": [
            {
              "docs": {
                "summary": "- The patch operations to apply."
              },
              "name": "patches",
              "type": {
                "fqn": "projen.JsonPatch"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 234
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "ObjectFile",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Indicates if empty objects and arrays are omitted from the output object."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 49
          },
          "name": "omitEmpty",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/object-file:ObjectFile"
    },
    "projen.ObjectFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `ObjectFile`."
      },
      "fqn": "projen.ObjectFileOptions",
      "interfaces": [
        "projen.FileBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/object-file.ts",
        "line": 9
      },
      "name": "ObjectFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "{} an empty object (use `file.obj` to mutate).",
            "remarks": "Serialization of the object is similar to JSON.stringify with few enhancements:\n- values that are functions will be called during synthesis and the result will be serialized - this allow to have lazy values.\n- `Set` will be converted to array\n- `Map` will be converted to a plain object ({ key: value, ... }})\n- `RegExp` without flags will be converted to string representation of the source",
            "stability": "experimental",
            "summary": "The object that will be serialized. You can modify the object's contents before synthesis."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 22
          },
          "name": "obj",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Omits empty objects and arrays."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/object-file.ts",
            "line": 28
          },
          "name": "omitEmpty",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/object-file:ObjectFileOptions"
    },
    "projen.Project": {
      "assembly": "projen",
      "base": "constructs.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "Base project."
      },
      "fqn": "projen.Project",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/project.ts",
          "line": 261
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.ProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/project.ts",
        "line": 154
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Test whether the given construct is a project."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 164
          },
          "name": "isProject",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "custom": {
              "throws": "when no project is found in the path to the root"
            },
            "remarks": "When given a project, this it the project itself.",
            "stability": "experimental",
            "summary": "Find the closest ancestor project for given construct."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 174
          },
          "name": "of",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "fqn": "constructs.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Project"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Can be used when, for example, some\nsource files include the projen marker and we don't want them to be erased during synth.",
            "stability": "experimental",
            "summary": "Exclude the matching files from pre-synth cleanup."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 552
          },
          "name": "addExcludeFromCleanup",
          "parameters": [
            {
              "docs": {
                "summary": "The glob patterns to match."
              },
              "name": "globs",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a .gitignore pattern."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 582
          },
          "name": "addGitIgnore",
          "parameters": [
            {
              "docs": {
                "summary": "The glob pattern to ignore."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Implemented by project types based on the\npackaging mechanism. For example, `NodeProject` delegates this to `.npmignore`.",
            "stability": "experimental",
            "summary": "Exclude these files from the bundled package."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 574
          },
          "name": "addPackageIgnore",
          "parameters": [
            {
              "docs": {
                "summary": "The glob pattern to exclude."
              },
              "name": "_pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "This will fail if the project already has\na task with this name.",
            "stability": "experimental",
            "summary": "Adds a new task to this project."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 421
          },
          "name": "addTask",
          "parameters": [
            {
              "docs": {
                "summary": "The task name to add."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Task properties."
              },
              "name": "props",
              "optional": true,
              "type": {
                "fqn": "projen.TaskOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Task"
            }
          }
        },
        {
          "docs": {
            "deprecated": "- use `project.logger.info(message)` to show messages during synthesis",
            "stability": "deprecated",
            "summary": "Prints a \"tip\" message during synthesis."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 542
          },
          "name": "addTip",
          "parameters": [
            {
              "docs": {
                "summary": "The message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "This method is implemented by\nderived classes and used for example, to add git attributes to tell GitHub\nthat certain files are generated.",
            "stability": "experimental",
            "summary": "Consider a set of files as \"generated\"."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 593
          },
          "name": "annotateGenerated",
          "parameters": [
            {
              "docs": {
                "summary": "the glob pattern to match (could be a file path)."
              },
              "name": "_glob",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Order is *not* guaranteed.",
            "stability": "experimental",
            "summary": "Called after all components are synthesized."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 681
          },
          "name": "postSynthesize"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before all components are synthesized."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 676
          },
          "name": "preSynthesize"
        },
        {
          "docs": {
            "returns": "The `Task` that was removed, otherwise `undefined`.",
            "stability": "experimental",
            "summary": "Removes a task from a project."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 432
          },
          "name": "removeTask",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the task to remove."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.Task"
            }
          }
        },
        {
          "docs": {
            "remarks": "By default, this is `npx projen@<version> <task>`",
            "stability": "experimental",
            "summary": "Returns the shell command to execute in order to run a task."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 563
          },
          "name": "runTaskCommand",
          "parameters": [
            {
              "docs": {
                "summary": "The task for which the command is required."
              },
              "name": "task",
              "type": {
                "fqn": "projen.Task"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "1. Call \"this.preSynthesize()\"\n2. Delete all generated files\n3. Synthesize all subprojects\n4. Synthesize all components of this project\n5. Call \"postSynthesize()\" for all components of this project\n6. Call \"this.postSynthesize()\"",
            "stability": "experimental",
            "summary": "Synthesize all project files into `outdir`."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 607
          },
          "name": "synth"
        },
        {
          "docs": {
            "returns": "a `FileBase` or undefined if there is no file in that path",
            "stability": "experimental",
            "summary": "Finds a file at the specified relative path within this project and all its subprojects."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 463
          },
          "name": "tryFindFile",
          "parameters": [
            {
              "docs": {
                "remarks": "If this path is relative, it will be resolved\nfrom the root of _this_ project.",
                "summary": "The file path."
              },
              "name": "filePath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.FileBase"
            }
          }
        },
        {
          "docs": {
            "deprecated": "use `tryFindObjectFile`",
            "stability": "deprecated",
            "summary": "Finds a json file by name."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 483
          },
          "name": "tryFindJsonFile",
          "parameters": [
            {
              "docs": {
                "summary": "The file path."
              },
              "name": "filePath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.JsonFile"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Finds an object file (like JsonFile, YamlFile, etc.) by name."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 502
          },
          "name": "tryFindObjectFile",
          "parameters": [
            {
              "docs": {
                "summary": "The file path."
              },
              "name": "filePath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.ObjectFile"
            }
          }
        },
        {
          "docs": {
            "returns": "a `FileBase` if the file was found and removed, or undefined if\nthe file was not found.",
            "stability": "experimental",
            "summary": "Finds a file at the specified relative path within this project and removes it."
          },
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 526
          },
          "name": "tryRemoveFile",
          "parameters": [
            {
              "docs": {
                "remarks": "If this path is relative, it will be\nresolved from the root of _this_ project.",
                "summary": "The file path."
              },
              "name": "filePath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.FileBase"
            }
          }
        }
      ],
      "name": "Project",
      "properties": [
        {
          "const": true,
          "docs": {
            "remarks": "Normally\nthis task should synthesize the project files.",
            "stability": "experimental",
            "summary": "The name of the default task (the task executed when `projen` is run without arguments)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 159
          },
          "name": "DEFAULT_TASK",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 436
          },
          "name": "buildTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whether to commit the managed files by default."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 253
          },
          "name": "commitGenerated",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 439
          },
          "name": "compileTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns all the components within this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 390
          },
          "name": "components",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Component"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 210
          },
          "name": "deps",
          "type": {
            "fqn": "projen.Dependencies"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whether or not the project is being ejected."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 669
          },
          "name": "ejected",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "All files in this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 408
          },
          "name": "files",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.FileBase"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The .gitattributes file for this repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 191
          },
          "name": "gitattributes",
          "type": {
            "fqn": "projen.GitAttributesFile"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": ".gitignore."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 186
          },
          "name": "gitignore",
          "type": {
            "fqn": "projen.IgnoreFile"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Logging utilities."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 215
          },
          "name": "logger",
          "type": {
            "fqn": "projen.Logger"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 181
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Absolute output directory of this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 201
          },
          "name": "outdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 451
          },
          "name": "packageTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 448
          },
          "name": "postCompileTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 445
          },
          "name": "preCompileTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Manages the build process of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 248
          },
          "name": "projectBuild",
          "type": {
            "fqn": "projen.ProjectBuild"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The command to use in order to run the projen CLI."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 227
          },
          "name": "projenCommand",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The root project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 383
          },
          "name": "root",
          "type": {
            "fqn": "projen.Project"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns all the subprojects within this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 401
          },
          "name": "subprojects",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Project"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 205
          },
          "name": "tasks",
          "type": {
            "fqn": "projen.Tasks"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 442
          },
          "name": "testTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "remarks": "Undefined if\nthe project is being ejected.",
            "stability": "experimental",
            "summary": "This is the \"default\" task, the one that executes \"projen\"."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 235
          },
          "name": "defaultTask",
          "optional": true,
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "remarks": "It\nincludes the original set of options passed to the CLI and also the JSII\nFQN of the project type.",
            "stability": "experimental",
            "summary": "The options used when this project is bootstrapped via `projen new`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 222
          },
          "name": "initProject",
          "optional": true,
          "type": {
            "fqn": "projen.InitProject"
          }
        },
        {
          "docs": {
            "remarks": "If undefined, this is the root project.",
            "stability": "experimental",
            "summary": "A parent project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 196
          },
          "name": "parent",
          "optional": true,
          "type": {
            "fqn": "projen.Project"
          }
        }
      ],
      "symbolId": "src/project:Project"
    },
    "projen.ProjectBuild": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Build spawns these tasks in order:\n1. default\n2. pre-compile\n3. compile\n4. post-compile\n5. test\n6. package",
        "stability": "experimental",
        "summary": "Manages a standard build process for all projects."
      },
      "fqn": "projen.ProjectBuild",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/project-build.ts",
          "line": 47
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/project-build.ts",
        "line": 16
      },
      "name": "ProjectBuild",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The task responsible for a full release build."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project-build.ts",
            "line": 20
          },
          "name": "buildTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "remarks": "By default for node.js projects this task is empty.",
            "stability": "experimental",
            "summary": "Compiles the code."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project-build.ts",
            "line": 30
          },
          "name": "compileTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The \"package\" task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project-build.ts",
            "line": 45
          },
          "name": "packageTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Post-compile task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project-build.ts",
            "line": 35
          },
          "name": "postCompileTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Pre-compile task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project-build.ts",
            "line": 25
          },
          "name": "preCompileTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Tests the code."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project-build.ts",
            "line": 40
          },
          "name": "testTask",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/project-build:ProjectBuild"
    },
    "projen.ProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Project`."
      },
      "fqn": "projen.ProjectOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/project.ts",
        "line": 40
      },
      "name": "ProjectOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "$BASEDIR",
            "stability": "experimental",
            "summary": "This is the name of your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 47
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Whether to commit the managed files by default."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 115
          },
          "name": "commitGenerated",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configuration options for .gitignore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 125
          },
          "name": "gitIgnoreOptions",
          "optional": true,
          "type": {
            "fqn": "projen.IgnoreFileOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configuration options for git."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 120
          },
          "name": "gitOptions",
          "optional": true,
          "type": {
            "fqn": "projen.GitOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Configure logging options such as verbosity."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 71
          },
          "name": "logging",
          "optional": true,
          "type": {
            "fqn": "projen.LoggerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\".\"",
            "remarks": "Relative to this directory, all files are synthesized.\n\nIf this project has a parent, this directory is relative to the parent\ndirectory and it cannot be the same as the parent or any of it's other\nsubprojects.",
            "stability": "experimental",
            "summary": "The root directory of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 65
          },
          "name": "outdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The parent project, if this project is part of a bigger project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 52
          },
          "name": "parent",
          "optional": true,
          "type": {
            "fqn": "projen.Project"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"npx projen\"",
            "remarks": "Can be used to customize in special environments.",
            "stability": "experimental",
            "summary": "The shell command to use in order to run the projen CLI."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 94
          },
          "name": "projenCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 79
          },
          "name": "projenrcJson",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for .projenrc.json."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 85
          },
          "name": "projenrcJsonOptions",
          "optional": true,
          "type": {
            "fqn": "projen.ProjenrcJsonOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Use renovatebot to handle dependency upgrades."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 101
          },
          "name": "renovatebot",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for renovatebot."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/project.ts",
            "line": 108
          },
          "name": "renovatebotOptions",
          "optional": true,
          "type": {
            "fqn": "projen.RenovatebotOptions"
          }
        }
      ],
      "symbolId": "src/project:ProjectOptions"
    },
    "projen.ProjectTree": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.ProjectTree",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/project-tree.ts",
          "line": 9
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/project-tree.ts",
        "line": 6
      },
      "name": "ProjectTree",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/project-tree.ts",
            "line": 7
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/project-tree:ProjectTree"
    },
    "projen.ProjectType": {
      "assembly": "projen",
      "docs": {
        "deprecated": "no longer supported at the base project level",
        "stability": "deprecated",
        "summary": "Which type of project this is."
      },
      "fqn": "projen.ProjectType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/project.ts",
        "line": 689
      },
      "members": [
        {
          "docs": {
            "stability": "deprecated",
            "summary": "This module may be a either a library or an app."
          },
          "name": "UNKNOWN"
        },
        {
          "docs": {
            "stability": "deprecated",
            "summary": "This is a library, intended to be published to a package manager and consumed by other projects."
          },
          "name": "LIB"
        },
        {
          "docs": {
            "remarks": "Its artifacts are intended to\nbe deployed or published for end-user consumption.",
            "stability": "deprecated",
            "summary": "This is an app (service, tool, website, etc)."
          },
          "name": "APP"
        }
      ],
      "name": "ProjectType",
      "symbolId": "src/project:ProjectType"
    },
    "projen.Projects": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Programmatic API for projen."
      },
      "fqn": "projen.Projects",
      "kind": "class",
      "locationInModule": {
        "filename": "src/projects.ts",
        "line": 57
      },
      "methods": [
        {
          "docs": {
            "remarks": "This function creates the project type in-process (with in VM) and calls\n`.synth()` on it (if `options.synth` is not `false`).\n\nAt the moment, it also generates a `.projenrc.js` file with the same code\nthat was just executed. In the future, this will also be done by the project\ntype, so we can easily support multiple languages of projenrc.\n\nAn environment variable (PROJEN_CREATE_PROJECT=true) is set within the VM\nso that custom project types can detect whether the current synthesis is the\nresult of a new project creation (and take additional steps accordingly)",
            "stability": "experimental",
            "summary": "Creates a new project with defaults."
          },
          "locationInModule": {
            "filename": "src/projects.ts",
            "line": 72
          },
          "name": "createProject",
          "parameters": [
            {
              "name": "options",
              "type": {
                "fqn": "projen.CreateProjectOptions"
              }
            }
          ],
          "static": true
        }
      ],
      "name": "Projects",
      "symbolId": "src/projects:Projects"
    },
    "projen.Projenrc": {
      "assembly": "projen",
      "base": "projen.ProjenrcJson",
      "docs": {
        "deprecated": "use `ProjenrcJson`",
        "stability": "deprecated"
      },
      "fqn": "projen.Projenrc",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/projenrc-json.ts",
          "line": 20
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.ProjenrcJsonOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/projenrc-json.ts",
        "line": 64
      },
      "name": "Projenrc",
      "symbolId": "src/projenrc-json:Projenrc"
    },
    "projen.ProjenrcFile": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "A component representing the projen runtime configuration."
      },
      "fqn": "projen.ProjenrcFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/component.ts",
          "line": 31
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "id",
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/projenrc.ts",
        "line": 7
      },
      "methods": [
        {
          "docs": {
            "returns": "A Projenrc",
            "stability": "experimental",
            "summary": "Returns the `Projenrc` instance associated with a project or `undefined` if there is no Projenrc."
          },
          "locationInModule": {
            "filename": "src/projenrc.ts",
            "line": 14
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The project."
              },
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.ProjenrcFile"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/projenrc.ts",
            "line": 25
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "ProjenrcFile",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The path of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projenrc.ts",
            "line": 23
          },
          "name": "filePath",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/projenrc:ProjenrcFile"
    },
    "projen.ProjenrcJson": {
      "assembly": "projen",
      "base": "projen.ProjenrcFile",
      "docs": {
        "stability": "experimental",
        "summary": "Sets up a project to use JSON for projenrc."
      },
      "fqn": "projen.ProjenrcJson",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/projenrc-json.ts",
          "line": 20
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.ProjenrcJsonOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/projenrc-json.ts",
        "line": 17
      },
      "name": "ProjenrcJson",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The path of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projenrc-json.ts",
            "line": 18
          },
          "name": "filePath",
          "overrides": "projen.ProjenrcFile",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/projenrc-json:ProjenrcJson"
    },
    "projen.ProjenrcJsonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.ProjenrcJsonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/projenrc-json.ts",
        "line": 6
      },
      "name": "ProjenrcJsonOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".projenrc.json\"",
            "stability": "experimental",
            "summary": "The name of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/projenrc-json.ts",
            "line": 11
          },
          "name": "filename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/projenrc-json:ProjenrcJsonOptions"
    },
    "projen.ProjenrcOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "use `ProjenrcJsonOptions`",
        "stability": "deprecated"
      },
      "fqn": "projen.ProjenrcOptions",
      "interfaces": [
        "projen.ProjenrcJsonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/projenrc-json.ts",
        "line": 59
      },
      "name": "ProjenrcOptions",
      "symbolId": "src/projenrc-json:ProjenrcOptions"
    },
    "projen.ReleasableCommits": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Find commits that should be considered releasable to decide if a release is required."
      },
      "fqn": "projen.ReleasableCommits",
      "kind": "class",
      "locationInModule": {
        "filename": "src/version.ts",
        "line": 296
      },
      "methods": [
        {
          "docs": {
            "remarks": "This will only not release if the most recent commit is tagged with the latest matching tag.",
            "stability": "experimental",
            "summary": "Release every commit."
          },
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 305
          },
          "name": "everyCommit",
          "parameters": [
            {
              "docs": {
                "remarks": "This path is relative to the current working dir of the `bump` task, i.e. to only consider commits of a subproject use `\".\"`.",
                "summary": "Consider only commits that are enough to explain how the files that match the specified paths came to be."
              },
              "name": "path",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.ReleasableCommits"
            }
          },
          "static": true
        },
        {
          "docs": {
            "example": "\"git log --oneline $LATEST_TAG..HEAD -- .\"",
            "remarks": "A new release will be initiated, if the number of returned commits is greater than zero.\nMust return a newline separate list of commits that should considered releasable.\n`$LATEST_TAG` will be replaced with the actual latest tag for the given prefix.*",
            "stability": "experimental",
            "summary": "Use an arbitrary shell command to find releasable commits since the latest tag."
          },
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 352
          },
          "name": "exec",
          "parameters": [
            {
              "name": "cmd",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.ReleasableCommits"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Shorthand for `ReleasableCommits.onlyOfType(['feat', 'fix'])`.",
            "stability": "experimental",
            "summary": "Release only features and fixes."
          },
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 339
          },
          "name": "featuresAndFixes",
          "parameters": [
            {
              "docs": {
                "remarks": "This path is relative to the current working dir of the `bump` task, i.e. to only consider commits of a subproject use `\".\"`.",
                "summary": "Consider only commits that are enough to explain how the files that match the specified paths came to be."
              },
              "name": "path",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.ReleasableCommits"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "This will only release commit that match one of the provided types.\nCommits are required to follow the conventional commit spec and will be ignored otherwise.",
            "stability": "experimental",
            "summary": "Limit commits by their conventional commit type."
          },
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 320
          },
          "name": "ofType",
          "parameters": [
            {
              "docs": {
                "summary": "List of conventional commit types that should be released."
              },
              "name": "types",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "docs": {
                "remarks": "This path is relative to the current working dir of the `bump` task, i.e. to only consider commits of a subproject use `\".\"`.",
                "summary": "Consider only commits that are enough to explain how the files that match the specified paths came to be."
              },
              "name": "path",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.ReleasableCommits"
            }
          },
          "static": true
        }
      ],
      "name": "ReleasableCommits",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 356
          },
          "name": "cmd",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/version:ReleasableCommits"
    },
    "projen.Renovatebot": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Ignores the versions controlled by Projen.",
        "stability": "experimental",
        "summary": "Defines renovatebot configuration for projen project."
      },
      "fqn": "projen.Renovatebot",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/renovatebot.ts",
          "line": 124
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.RenovatebotOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/renovatebot.ts",
        "line": 106
      },
      "name": "Renovatebot",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The file holding the renovatebot configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 110
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/renovatebot:Renovatebot"
    },
    "projen.RenovatebotOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for Renovatebot."
      },
      "fqn": "projen.RenovatebotOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/renovatebot.ts",
        "line": 9
      },
      "name": "RenovatebotOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "The ignore option supports just package name.",
            "stability": "experimental",
            "summary": "You can use the `ignore` option to customize which dependencies are updated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 29
          },
          "name": "ignore",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This is required since projen updates may cause changes in committed files\nand anti-tamper checks will fail.\n\nProjen upgrades are covered through the `ProjenUpgrade` class.",
            "stability": "experimental",
            "summary": "Ignores updates to `projen`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 41
          },
          "name": "ignoreProjen",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "List of labels to apply to the created PR's."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 46
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 50
          },
          "name": "marker",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 48
          },
          "name": "overrideConfig",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\"at any time\"]",
            "remarks": "Can be given in CRON or LATER format, and use multiple schedules\n(e.g. different for weekdays and weekends). Multiple rules are\nhandles as OR.\n\nSome normal scheduling values defined in enum `RenovatebotScheduleInterval`.",
            "see": "https://docs.renovatebot.com/configuration-options/#schedule",
            "stability": "experimental",
            "summary": "How often to check for new versions and raise pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/renovatebot.ts",
            "line": 22
          },
          "name": "scheduleInterval",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/renovatebot:RenovatebotOptions"
    },
    "projen.RenovatebotScheduleInterval": {
      "assembly": "projen",
      "docs": {
        "see": "https://docs.renovatebot.com/presets-schedule/",
        "stability": "experimental",
        "summary": "How often to check for new versions and raise pull requests for version updates."
      },
      "fqn": "projen.RenovatebotScheduleInterval",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/renovatebot.ts",
        "line": 59
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Run at any time."
          },
          "name": "ANY_TIME"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Weekly schedule on early monday mornings."
          },
          "name": "EARLY_MONDAYS"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Schedule daily."
          },
          "name": "DAILY"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Schedule monthly."
          },
          "name": "MONTHLY"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Schedule quarterly."
          },
          "name": "QUARTERLY"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Schedule for weekends."
          },
          "name": "WEEKENDS"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Schedule for weekdays."
          },
          "name": "WEEKDAYS"
        }
      ],
      "name": "RenovatebotScheduleInterval",
      "symbolId": "src/renovatebot:RenovatebotScheduleInterval"
    },
    "projen.ResolveOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Resolve options."
      },
      "fqn": "projen.ResolveOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/file.ts",
        "line": 242
      },
      "name": "ResolveOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Context arguments."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 253
          },
          "name": "args",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Omits empty arrays and objects."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/file.ts",
            "line": 247
          },
          "name": "omitEmpty",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/file:ResolveOptions"
    },
    "projen.Rule": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A Make rule."
      },
      "fqn": "projen.Rule",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/makefile.ts",
        "line": 7
      },
      "name": "Rule",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If the rule is phony then instead this represents the command's name(s).",
            "stability": "experimental",
            "summary": "Files to be created or updated by this rule."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 13
          },
          "name": "targets",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Marks whether the target is phony."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 34
          },
          "name": "phony",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Files that are used as inputs to create a target."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 20
          },
          "name": "prerequisites",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Commands that are run (using prerequisites as inputs) to create a target."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/makefile.ts",
            "line": 27
          },
          "name": "recipe",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/makefile:Rule"
    },
    "projen.SampleDir": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Use this to create sample code files",
        "stability": "experimental",
        "summary": "Renders the given files into the directory if the directory does not exist."
      },
      "fqn": "projen.SampleDir",
      "initializer": {
        "docs": {
          "stability": "experimental",
          "summary": "Create sample files in the given directory if the given directory does not exist."
        },
        "locationInModule": {
          "filename": "src/sample-file.ts",
          "line": 127
        },
        "parameters": [
          {
            "docs": {
              "summary": "Parent project to add files to."
            },
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "docs": {
              "remarks": "If directory already exists, nothing is added.",
              "summary": "directory to add files to."
            },
            "name": "dir",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "options for which files to create."
            },
            "name": "options",
            "type": {
              "fqn": "projen.SampleDirOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/sample-file.ts",
        "line": 117
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes files to the project output directory."
          },
          "locationInModule": {
            "filename": "src/sample-file.ts",
            "line": 137
          },
          "name": "synthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "SampleDir",
      "symbolId": "src/sample-file:SampleDir"
    },
    "projen.SampleDirOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "SampleDir options."
      },
      "fqn": "projen.SampleDirOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/sample-file.ts",
        "line": 92
      },
      "name": "SampleDirOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "These files get added after\nany files from `source` if that option is specified (replacing if names\noverlap).",
            "stability": "experimental",
            "summary": "The files to render into the directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/sample-file.ts",
            "line": 98
          },
          "name": "files",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If your project is typescript-based and has configured `testdir` to be a\nsubdirectory of `src`, sample files should outside of the `src` directory\notherwise they may not be copied. For example:\n```\nnew SampleDir(this, 'public', { source: path.join(__dirname, '..', 'sample-assets') });\n```",
            "stability": "experimental",
            "summary": "Absolute path to a directory to copy files from (does not need to be text files)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/sample-file.ts",
            "line": 111
          },
          "name": "sourceDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/sample-file:SampleDirOptions"
    },
    "projen.SampleFile": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Use this for creating example code files or other resources.",
        "stability": "experimental",
        "summary": "Produces a file with the given contents but only once, if the file doesn't already exist."
      },
      "fqn": "projen.SampleFile",
      "initializer": {
        "docs": {
          "stability": "experimental",
          "summary": "Creates a new SampleFile object."
        },
        "locationInModule": {
          "filename": "src/sample-file.ts",
          "line": 45
        },
        "parameters": [
          {
            "docs": {
              "summary": "- the project to tie this file to."
            },
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "docs": {
              "summary": "- the relative path in the project to put the file."
            },
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "- the options for the file."
            },
            "name": "options",
            "type": {
              "fqn": "projen.SampleFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/sample-file.ts",
        "line": 35
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes files to the project output directory."
          },
          "locationInModule": {
            "filename": "src/sample-file.ts",
            "line": 58
          },
          "name": "synthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "SampleFile",
      "symbolId": "src/sample-file:SampleFile"
    },
    "projen.SampleFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for the SampleFile object."
      },
      "fqn": "projen.SampleFileOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/sample-file.ts",
        "line": 11
      },
      "name": "SampleFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The contents of the file to write."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/sample-file.ts",
            "line": 15
          },
          "name": "contents",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If your project is Typescript-based and has configured `testdir` to be a\nsubdirectory of `src`, sample files should outside of the `src` directory,\notherwise they may not be copied. For example:\n```\nnew SampleFile(this, 'assets/icon.png', { sourcePath: path.join(__dirname, '..', 'sample-assets', 'icon.png') });\n```",
            "stability": "experimental",
            "summary": "Absolute path to a file to copy the contents from (does not need to be a text file)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/sample-file.ts",
            "line": 28
          },
          "name": "sourcePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/sample-file:SampleFileOptions"
    },
    "projen.SampleReadme": {
      "assembly": "projen",
      "base": "projen.SampleFile",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a README.md sample file. You are expected to manage this file after creation."
      },
      "fqn": "projen.SampleReadme",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/readme.ts",
          "line": 30
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "projen.SampleReadmeProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/readme.ts",
        "line": 29
      },
      "name": "SampleReadme",
      "symbolId": "src/readme:SampleReadme"
    },
    "projen.SampleReadmeProps": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "SampleReadme Properties."
      },
      "fqn": "projen.SampleReadmeProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/readme.ts",
        "line": 7
      },
      "name": "SampleReadmeProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"# replace this\"",
            "stability": "experimental",
            "summary": "The contents."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/readme.ts",
            "line": 20
          },
          "name": "contents",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"README.md\"",
            "example": "\"readme.md\"",
            "stability": "experimental",
            "summary": "The name of the README.md file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/readme.ts",
            "line": 14
          },
          "name": "filename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/readme:SampleReadmeProps"
    },
    "projen.Semver": {
      "assembly": "projen",
      "docs": {
        "deprecated": "This class will be removed in upcoming releases. if you wish to\nspecify semver requirements in `deps`, `devDeps`, etc, specify them like so\n`express@^2.1`.",
        "stability": "deprecated"
      },
      "fqn": "projen.Semver",
      "kind": "class",
      "locationInModule": {
        "filename": "src/semver.ts",
        "line": 8
      },
      "methods": [
        {
          "docs": {
            "remarks": ">= version\n< next major version",
            "stability": "deprecated",
            "summary": "Accept any minor version."
          },
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 33
          },
          "name": "caret",
          "parameters": [
            {
              "name": "version",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Semver"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "deprecated",
            "summary": "Latest version."
          },
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 16
          },
          "name": "latest",
          "returns": {
            "type": {
              "fqn": "projen.Semver"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "deprecated"
          },
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 9
          },
          "name": "of",
          "parameters": [
            {
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Semver"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "deprecated",
            "summary": "Accept only an exact version."
          },
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 23
          },
          "name": "pinned",
          "parameters": [
            {
              "name": "version",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Semver"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": ">= version\n< next minor version",
            "stability": "deprecated",
            "summary": "Accept patches."
          },
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 43
          },
          "name": "tilde",
          "parameters": [
            {
              "name": "version",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Semver"
            }
          },
          "static": true
        }
      ],
      "name": "Semver",
      "properties": [
        {
          "docs": {
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 49
          },
          "name": "spec",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 47
          },
          "name": "mode",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/semver.ts",
            "line": 51
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/semver:Semver"
    },
    "projen.SnapshotOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for the Snapshot synthesis."
      },
      "fqn": "projen.SnapshotOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/util/synth.ts",
        "line": 13
      },
      "name": "SnapshotOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true parse .json files into an object",
            "stability": "experimental",
            "summary": "Parse .json files as a JS object for improved inspection. This will fail if the contents are invalid JSON."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/util/synth.ts",
            "line": 20
          },
          "name": "parseJson",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/util/synth:SnapshotOptions"
    },
    "projen.SourceCode": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a source file."
      },
      "fqn": "projen.SourceCode",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/source-code.ts",
          "line": 31
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.SourceCodeOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/source-code.ts",
        "line": 26
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Decreases the indentation level and closes a code block."
          },
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 75
          },
          "name": "close",
          "parameters": [
            {
              "docs": {
                "summary": "The code after the block is closed (e.g. `}`)."
              },
              "name": "code",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Emit a line of code."
          },
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 51
          },
          "name": "line",
          "parameters": [
            {
              "docs": {
                "summary": "The contents, if not specified, just adds a newline."
              },
              "name": "code",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Opens a code block and increases the indentation level."
          },
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 62
          },
          "name": "open",
          "parameters": [
            {
              "docs": {
                "summary": "The code before the block starts (e.g. `export class {`)."
              },
              "name": "code",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "SourceCode",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 33
          },
          "name": "filePath",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 43
          },
          "name": "marker",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/source-code:SourceCode"
    },
    "projen.SourceCodeOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `SourceCodeFile`."
      },
      "fqn": "projen.SourceCodeOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/source-code.ts",
        "line": 8
      },
      "name": "SourceCodeOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "2",
            "stability": "experimental",
            "summary": "Indentation size."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 13
          },
          "name": "indent",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Whether the generated file should be readonly."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/source-code.ts",
            "line": 20
          },
          "name": "readonly",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/source-code:SourceCodeOptions"
    },
    "projen.Task": {
      "assembly": "projen",
      "docs": {
        "remarks": "Modeled as a series of shell\ncommands and subtasks.",
        "stability": "experimental",
        "summary": "A task that can be performed on the project."
      },
      "fqn": "projen.Task",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/task.ts",
          "line": 57
        },
        "parameters": [
          {
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "projen.TaskOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/task.ts",
        "line": 42
      },
      "methods": [
        {
          "docs": {
            "remarks": "If a condition already exists, the new condition will be appended with ` && ` delimiter.",
            "see": "{@link Task.condition }",
            "stability": "experimental",
            "summary": "Add a command to execute which determines if the task should be skipped."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 130
          },
          "name": "addCondition",
          "parameters": [
            {
              "docs": {
                "summary": "The command to execute."
              },
              "name": "condition",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "Builtin tasks are programs bundled as part of projen itself and used as\nhelpers for various components.\n\nIn the future we should support built-in tasks from external modules.",
            "stability": "experimental",
            "summary": "Execute a builtin task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 182
          },
          "name": "builtin",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the builtin task to execute (e.g. `release/resolve-version`)."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds an environment variable to this task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 296
          },
          "name": "env",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the variable."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "If the value is surrounded by `$()`, we will\nevaluate it within a subshell and use the result as the value of the\nenvironment variable.",
                "summary": "The value."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Executes a shell command."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 160
          },
          "name": "exec",
          "parameters": [
            {
              "docs": {
                "summary": "Shell command."
              },
              "name": "command",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Insert one or more steps at a given index."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 327
          },
          "name": "insertStep",
          "parameters": [
            {
              "docs": {
                "remarks": "May be negative to\ncount backwards from the end, or may be `== steps().length` to insert at the end.",
                "summary": "Steps will be inserted before this index."
              },
              "name": "index",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "The steps to insert."
              },
              "name": "steps",
              "type": {
                "fqn": "projen.TaskStep"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Forbid additional changes to this task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 80
          },
          "name": "lock"
        },
        {
          "docs": {
            "deprecated": "use `prependExec()`",
            "stability": "deprecated",
            "summary": "Adds a command at the beginning of the task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 215
          },
          "name": "prepend",
          "parameters": [
            {
              "docs": {
                "summary": "The command to add."
              },
              "name": "shell",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a command at the beginning of the task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 239
          },
          "name": "prependExec",
          "parameters": [
            {
              "docs": {
                "summary": "The command to add."
              },
              "name": "shell",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Says something at the beginning of the task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 275
          },
          "name": "prependSay",
          "parameters": [
            {
              "docs": {
                "summary": "Your message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a spawn instruction at the beginning of the task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 257
          },
          "name": "prependSpawn",
          "parameters": [
            {
              "docs": {
                "summary": "The subtask to execute."
              },
              "name": "subtask",
              "type": {
                "fqn": "projen.Task"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 371
          },
          "name": "removeStep",
          "parameters": [
            {
              "docs": {
                "summary": "The index of the step to remove."
              },
              "name": "index",
              "type": {
                "primitive": "number"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Reset the task so it no longer has any commands."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 138
          },
          "name": "reset",
          "parameters": [
            {
              "docs": {
                "summary": "the first command to add to the task after it was cleared."
              },
              "name": "command",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Say something."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 198
          },
          "name": "say",
          "parameters": [
            {
              "docs": {
                "summary": "Your message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Spawns a sub-task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 224
          },
          "name": "spawn",
          "parameters": [
            {
              "docs": {
                "summary": "The subtask to execute."
              },
              "name": "subtask",
              "type": {
                "fqn": "projen.Task"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskStepOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 349
          },
          "name": "updateStep",
          "parameters": [
            {
              "docs": {
                "summary": "The index of the step to edit."
              },
              "name": "index",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "The new step to replace the old one entirely, it is not merged with the old step."
              },
              "name": "step",
              "type": {
                "fqn": "projen.TaskStep"
              }
            }
          ]
        }
      ],
      "name": "Task",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns all environment variables in the task level."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 304
          },
          "name": "envVars",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Task name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 46
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns an immutable copy of all the step specifications of the task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 311
          },
          "name": "steps",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.TaskStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "If it\nreturns a zero exit code, the task will not be executed.",
            "stability": "experimental",
            "summary": "A command to execute which determines if the task should be skipped."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 116
          },
          "name": "condition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Sets the working directory for this task.",
            "stability": "experimental",
            "summary": "Returns the working directory for this task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 87
          },
          "name": "cwd",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Sets the description of this task.",
            "stability": "experimental",
            "summary": "Returns the description of this task."
          },
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 101
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/task:Task"
    },
    "projen.TaskCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.TaskCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/task-model.ts",
        "line": 16
      },
      "name": "TaskCommonOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If\nthe program exits with a zero exit code, steps will be executed. A non-zero\ncode means that task will be skipped.",
            "stability": "experimental",
            "summary": "A shell command which determines if the this task should be executed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 41
          },
          "name": "condition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- process.cwd()",
            "stability": "experimental",
            "summary": "The working directory for all steps in this task (unless overridden by the step)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 49
          },
          "name": "cwd",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the task name",
            "stability": "experimental",
            "summary": "The description of this build command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 21
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "remarks": "Values in this map will be evaluated in a shell, so you can do stuff like `$(echo \"foo\")`.",
            "stability": "experimental",
            "summary": "Defines environment variables for the execution of this task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 28
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Task execution will fail if one of these is not defined.",
            "stability": "experimental",
            "summary": "A set of environment variables that must be defined in order to execute this task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 34
          },
          "name": "requiredEnv",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/task-model:TaskCommonOptions"
    },
    "projen.TaskOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.TaskOptions",
      "interfaces": [
        "projen.TaskCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/task.ts",
        "line": 9
      },
      "name": "TaskOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no arguments are passed to the step",
            "see": "{@link TaskStepOptions.args }",
            "stability": "experimental",
            "summary": "Should the provided `exec` shell command receive fixed args."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 35
          },
          "name": "args",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- add steps using `task.exec(command)` or `task.spawn(subtask)`",
            "stability": "experimental",
            "summary": "Shell command to execute as the first command of the task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 14
          },
          "name": "exec",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "see": "{@link TaskStepOptions.receiveArgs }",
            "stability": "experimental",
            "summary": "Should the provided `exec` shell command receive args passed to the task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 27
          },
          "name": "receiveArgs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "List of task steps to run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task.ts",
            "line": 19
          },
          "name": "steps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.TaskStep"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/task:TaskOptions"
    },
    "projen.TaskRuntime": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The runtime component of the tasks engine."
      },
      "fqn": "projen.TaskRuntime",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/task-runtime.ts",
          "line": 38
        },
        "parameters": [
          {
            "name": "workdir",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/task-runtime.ts",
        "line": 19
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Runs the task."
          },
          "locationInModule": {
            "filename": "src/task-runtime.ts",
            "line": 67
          },
          "name": "runTask",
          "parameters": [
            {
              "docs": {
                "summary": "The task name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "parents",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "name": "args",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "union": {
                      "types": [
                        {
                          "primitive": "string"
                        },
                        {
                          "primitive": "number"
                        }
                      ]
                    }
                  },
                  "kind": "array"
                }
              }
            },
            {
              "name": "env",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Find a task by name, or `undefined` if not found."
          },
          "locationInModule": {
            "filename": "src/task-runtime.ts",
            "line": 56
          },
          "name": "tryFindTask",
          "parameters": [
            {
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.TaskSpec"
            }
          }
        }
      ],
      "name": "TaskRuntime",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "The project-relative path of the tasks manifest file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-runtime.ts",
            "line": 23
          },
          "name": "MANIFEST_FILE",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The contents of tasks.json."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-runtime.ts",
            "line": 31
          },
          "name": "manifest",
          "type": {
            "fqn": "projen.TasksManifest"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The tasks in this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-runtime.ts",
            "line": 49
          },
          "name": "tasks",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.TaskSpec"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The root directory of the project and the cwd for executing tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-runtime.ts",
            "line": 36
          },
          "name": "workdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/task-runtime:TaskRuntime"
    },
    "projen.TaskSpec": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Specification of a single task."
      },
      "fqn": "projen.TaskSpec",
      "interfaces": [
        "projen.TaskCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/task-model.ts",
        "line": 55
      },
      "name": "TaskSpec",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Task name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 59
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Task steps."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 64
          },
          "name": "steps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.TaskStep"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/task-model:TaskSpec"
    },
    "projen.TaskStep": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "The step could either be  the execution of a\nshell command or execution of a sub-task, by name.",
        "stability": "experimental",
        "summary": "A single step within a task."
      },
      "fqn": "projen.TaskStep",
      "interfaces": [
        "projen.TaskStepOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/task-model.ts",
        "line": 147
      },
      "name": "TaskStep",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- do not execute a builtin task",
            "remarks": "Built-in tasks are node.js programs baked into the projen module and as\ncomponent runtime helpers.\n\nThe name is a path relative to the projen lib/ directory (without the .task.js extension).\nFor example, if your built in builtin task is under `src/release/resolve-version.task.ts`,\nthen this would be `release/resolve-version`.",
            "stability": "experimental",
            "summary": "The name of a built-in task to execute."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 180
          },
          "name": "builtin",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- don't execute a shell command",
            "stability": "experimental",
            "summary": "Shell command to execute."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 153
          },
          "name": "exec",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- don't say anything",
            "stability": "experimental",
            "summary": "Print a message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 166
          },
          "name": "say",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- don't spawn a subtask",
            "stability": "experimental",
            "summary": "Subtask to execute."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 160
          },
          "name": "spawn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/task-model:TaskStep"
    },
    "projen.TaskStepOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for task steps."
      },
      "fqn": "projen.TaskStepOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/task-model.ts",
        "line": 70
      },
      "name": "TaskStepOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no arguments are passed to the step",
            "example": "task.spawn(\"deploy\", { args: [\"--force\"] });",
            "remarks": "Useful to re-use existing tasks without having to re-define the whole task.\\\nFixed args are always passed to the step, even if `receiveArgs` is `false`\nand are always passed before any args the task is called with.\n\nIf the step executes a shell commands, args are passed through at the end of the `exec` shell command.\\\nThe position of the args can be changed by including the marker `$@` inside the command string.\n\nIf the step spawns a subtask, args are passed to the subtask.\nThe subtask must define steps receiving args for this to have any effect.\n\nIf the step calls a builtin script, args are passed to the script.\nIt is up to the script to use or discard the arguments.",
            "stability": "experimental",
            "summary": "A list of fixed arguments always passed to the step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 130
          },
          "name": "args",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If\nthe program exits with a zero exit code, the step will be executed. A non-zero\ncode means the step will be skipped (subsequent task steps will still be evaluated/executed).",
            "stability": "experimental",
            "summary": "A shell command which determines if the this step should be executed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 90
          },
          "name": "condition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- determined by the task",
            "stability": "experimental",
            "summary": "The working directory for this step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 83
          },
          "name": "cwd",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no environment variables defined in step",
            "example": "{ \"foo\": \"bar\", \"boo\": \"$(echo baz)\" }",
            "remarks": "Values in this map can be simple, literal values or shell expressions that will be evaluated at runtime e.g. `$(echo \"foo\")`.",
            "stability": "experimental",
            "summary": "Defines environment variables for the execution of this step (`exec` and `builtin` only)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 140
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no name",
            "stability": "experimental",
            "summary": "Step name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 76
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "example": "task.exec(\"echo Hello $@ World!\", { receiveArgs: true });",
            "remarks": "If `true`, args are passed through at the end of the `exec` shell command.\\\nThe position of the args can be changed by including the marker `$@` inside the command string.\n\nIf the marker is explicitly double-quoted (\"$@\") arguments will be wrapped in single quotes, approximating\nthe whitespace preserving behavior of bash variable expansion.\n\nIf the step spawns a subtask, args are passed to the subtask.\nThe subtask must define steps receiving args for this to have any effect.",
            "stability": "experimental",
            "summary": "Should this step receive args passed to the task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 108
          },
          "name": "receiveArgs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/task-model:TaskStepOptions"
    },
    "projen.Tasks": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Tasks extend the projen CLI by adding subcommands to it. Task definitions are\nsynthesized into `.projen/tasks.json`.",
        "stability": "experimental",
        "summary": "Defines project tasks."
      },
      "fqn": "projen.Tasks",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/tasks.ts",
          "line": 21
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/tasks.ts",
        "line": 17
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds global environment."
          },
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 91
          },
          "name": "addEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "Environment variable name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Value."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a task to a project."
          },
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 48
          },
          "name": "addTask",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the task."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Task options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.TaskOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Task"
            }
          }
        },
        {
          "docs": {
            "returns": "The `Task` that was removed, otherwise `undefined`.",
            "stability": "experimental",
            "summary": "Removes a task from a project."
          },
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 66
          },
          "name": "removeTask",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the task to remove."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.Task"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes files to the project output directory."
          },
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 112
          },
          "name": "synthesize",
          "overrides": "projen.Component"
        },
        {
          "docs": {
            "remarks": "Returns `undefined` if the task cannot be found.",
            "stability": "experimental",
            "summary": "Finds a task by name."
          },
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 108
          },
          "name": "tryFind",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the task."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.Task"
            }
          }
        }
      ],
      "name": "Tasks",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "All tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 39
          },
          "name": "all",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Task"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns a copy of the currently global environment for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/tasks.ts",
            "line": 98
          },
          "name": "env",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/tasks:Tasks"
    },
    "projen.TasksManifest": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Schema for `tasks.json`."
      },
      "fqn": "projen.TasksManifest",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/task-model.ts",
        "line": 4
      },
      "name": "TasksManifest",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Environment for all tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 13
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "All tasks available for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/task-model.ts",
            "line": 8
          },
          "name": "tasks",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.TaskSpec"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/task-model:TasksManifest"
    },
    "projen.TestFailureBehavior": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.TestFailureBehavior",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/json-patch.ts",
        "line": 17
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Skip the current patch operation and continue with the next operation."
          },
          "name": "SKIP"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Fail the whole file synthesis."
          },
          "name": "FAIL_SYNTHESIS"
        }
      ],
      "name": "TestFailureBehavior",
      "symbolId": "src/json-patch:TestFailureBehavior"
    },
    "projen.Testing": {
      "assembly": "projen",
      "docs": {
        "example": "`expect(Testing.synth(someProject)).toMatchSnapshot()`",
        "stability": "experimental",
        "summary": "A Testing static class with a .synth helper for getting a snapshots of construct outputs. Useful for snapshot testing with Jest."
      },
      "fqn": "projen.Testing",
      "kind": "class",
      "locationInModule": {
        "filename": "src/testing.ts",
        "line": 10
      },
      "methods": [
        {
          "docs": {
            "returns": ": any }",
            "stability": "experimental",
            "summary": "Produces a simple JS object that represents the contents of the projects with field names being file paths."
          },
          "locationInModule": {
            "filename": "src/testing.ts",
            "line": 16
          },
          "name": "synth",
          "parameters": [
            {
              "docs": {
                "summary": "the project to produce a snapshot for."
              },
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.SnapshotOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          },
          "static": true
        }
      ],
      "name": "Testing",
      "symbolId": "src/testing:Testing"
    },
    "projen.TextFile": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "stability": "experimental",
        "summary": "A text file."
      },
      "fqn": "projen.TextFile",
      "initializer": {
        "docs": {
          "stability": "experimental",
          "summary": "Defines a text file."
        },
        "locationInModule": {
          "filename": "src/textfile.ts",
          "line": 29
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "docs": {
              "summary": "File path."
            },
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "Options."
            },
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.TextFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/textfile.ts",
        "line": 19
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a line to the text file."
          },
          "locationInModule": {
            "filename": "src/textfile.ts",
            "line": 43
          },
          "name": "addLine",
          "parameters": [
            {
              "docs": {
                "summary": "the line to add (can use tokens)."
              },
              "name": "line",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/textfile.ts",
            "line": 47
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "_",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "TextFile",
      "symbolId": "src/textfile:TextFile"
    },
    "projen.TextFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `TextFile`."
      },
      "fqn": "projen.TextFileOptions",
      "interfaces": [
        "projen.FileBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/textfile.ts",
        "line": 7
      },
      "name": "TextFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "[] empty file",
            "remarks": "You can use `addLine()` to append lines.",
            "stability": "experimental",
            "summary": "The contents of the text file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/textfile.ts",
            "line": 13
          },
          "name": "lines",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/textfile:TextFileOptions"
    },
    "projen.TomlFile": {
      "assembly": "projen",
      "base": "projen.ObjectFile",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a TOML file."
      },
      "fqn": "projen.TomlFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/toml.ts",
          "line": 15
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.TomlFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/toml.ts",
        "line": 14
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/toml.ts",
            "line": 19
          },
          "name": "synthesizeContent",
          "overrides": "projen.ObjectFile",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "TomlFile",
      "symbolId": "src/toml:TomlFile"
    },
    "projen.TomlFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `TomlFile`."
      },
      "fqn": "projen.TomlFileOptions",
      "interfaces": [
        "projen.ObjectFileOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/toml.ts",
        "line": 9
      },
      "name": "TomlFileOptions",
      "symbolId": "src/toml:TomlFileOptions"
    },
    "projen.Version": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.Version",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/version.ts",
          "line": 127
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.VersionOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/version.ts",
        "line": 95
      },
      "methods": [
        {
          "docs": {
            "remarks": "These options are used to modify the behavior of the version bumping script\nfor additional branches, by setting environment variables.\n\nNo settings are inherited from the base `Version` object (but any parameters that\ncontrol versions do conflict with the use of a `nextVersionCommand`).",
            "stability": "experimental",
            "summary": "Return the environment variables to modify the bump command for release branches."
          },
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 216
          },
          "name": "envForBranch",
          "parameters": [
            {
              "name": "branchOptions",
              "type": {
                "fqn": "projen.VersionBranchOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "Version",
      "properties": [
        {
          "const": true,
          "docs": {
            "deprecated": "use `version.bumpPackage` on the component instance instead",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 99
          },
          "name": "STANDARD_VERSION",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "This is a `commit-and-tag-version` compatible package.",
            "stability": "experimental",
            "summary": "The package used to bump package versions, as a dependency string."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 123
          },
          "name": "bumpPackage",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 101
          },
          "name": "bumpTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the changelog file (under `artifactsDirectory`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 107
          },
          "name": "changelogFileName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the file that contains the release tag (under `artifactsDirectory`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 117
          },
          "name": "releaseTagFileName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 102
          },
          "name": "unbumpTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the file that contains the version (under `artifactsDirectory`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 112
          },
          "name": "versionFileName",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/version:Version"
    },
    "projen.VersionBranchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options to pass to `modifyBranchEnvironment`."
      },
      "fqn": "projen.VersionBranchOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/version.ts",
        "line": 255
      },
      "name": "VersionBranchOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The major versions released from this branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 259
          },
          "name": "majorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The minimum major version to release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 264
          },
          "name": "minMajorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The minor versions released from this branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 269
          },
          "name": "minorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- normal releases",
            "stability": "experimental",
            "summary": "Bump the version as a pre-release tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 276
          },
          "name": "prerelease",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no prefix",
            "remarks": "Note: this prefix is used to detect the latest tagged version\nwhen bumping, so if you change this on a project with an existing version\nhistory, you may need to manually tag your latest release\nwith the new prefix.",
            "stability": "experimental",
            "summary": "Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 290
          },
          "name": "tagPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/version:VersionBranchOptions"
    },
    "projen.VersionOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Version`."
      },
      "fqn": "projen.VersionOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/version.ts",
        "line": 31
      },
      "name": "VersionOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the directory into which `changelog.md` and `version.txt` files are emitted."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 43
          },
          "name": "artifactsDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"package.json\"",
            "stability": "experimental",
            "summary": "A name of a .json file to set the `version` field in after a bump."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 37
          },
          "name": "versionInputFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"commit-and-tag-version@12\"",
            "remarks": "This can be any compatible package version, including the deprecated `standard-version@9`.",
            "stability": "experimental",
            "summary": "The `commit-and-tag-version` compatible package used to bump the package version, as a dependency string."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 70
          },
          "name": "bumpPackage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The next version will be determined based on the commit history and project settings.",
            "remarks": "If present, this shell command will be run before the bump is executed, and\nit determines what version to release. It will be executed in the following\nenvironment:\n\n- Working directory: the project directory.\n- `$VERSION`: the current version. Looks like `1.2.3`.\n- `$LATEST_TAG`: the most recent tag. Looks like `prefix-v1.2.3`, or may be unset.\n\nThe command should print one of the following to `stdout`:\n\n- Nothing: the next version number will be determined based on commit history.\n- `x.y.z`: the next version number will be `x.y.z`.\n- `major|minor|patch`: the next version number will be the current version number\n  with the indicated component bumped.",
            "stability": "experimental",
            "summary": "A shell command to control the next version to release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 92
          },
          "name": "nextVersionCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "ReleasableCommits.everyCommit()",
            "stability": "experimental",
            "summary": "Find commits that should be considered releasable Used to decide if a release is required."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 61
          },
          "name": "releasableCommits",
          "optional": true,
          "type": {
            "fqn": "projen.ReleasableCommits"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The tag prefix corresponding to this version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 53
          },
          "name": "tagPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Custom configuration for versionrc file used by standard-release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/version.ts",
            "line": 48
          },
          "name": "versionrcOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/version:VersionOptions"
    },
    "projen.XmlFile": {
      "assembly": "projen",
      "base": "projen.ObjectFile",
      "docs": {
        "remarks": "Objects passed in will be synthesized using the npm \"xml\" library.",
        "see": "https://www.npmjs.com/package/xml",
        "stability": "experimental",
        "summary": "Represents an XML file."
      },
      "fqn": "projen.XmlFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/xmlfile.ts",
          "line": 18
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.XmlFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/xmlfile.ts",
        "line": 17
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/xmlfile.ts",
            "line": 26
          },
          "name": "synthesizeContent",
          "overrides": "projen.ObjectFile",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "XmlFile",
      "symbolId": "src/xmlfile:XmlFile"
    },
    "projen.XmlFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `XmlFile`."
      },
      "fqn": "projen.XmlFileOptions",
      "interfaces": [
        "projen.ObjectFileOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/xmlfile.ts",
        "line": 9
      },
      "name": "XmlFileOptions",
      "symbolId": "src/xmlfile:XmlFileOptions"
    },
    "projen.YamlFile": {
      "assembly": "projen",
      "base": "projen.ObjectFile",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a YAML file."
      },
      "fqn": "projen.YamlFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/yaml.ts",
          "line": 27
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.YamlFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/yaml.ts",
        "line": 21
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/yaml.ts",
            "line": 32
          },
          "name": "synthesizeContent",
          "overrides": "projen.ObjectFile",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "YamlFile",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maximum line width (set to 0 to disable folding)."
          },
          "locationInModule": {
            "filename": "src/yaml.ts",
            "line": 25
          },
          "name": "lineWidth",
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/yaml:YamlFile"
    },
    "projen.YamlFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `JsonFile`."
      },
      "fqn": "projen.YamlFileOptions",
      "interfaces": [
        "projen.ObjectFileOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/yaml.ts",
        "line": 9
      },
      "name": "YamlFileOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- 0",
            "stability": "experimental",
            "summary": "Maximum line width (set to 0 to disable folding)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/yaml.ts",
            "line": 15
          },
          "name": "lineWidth",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/yaml:YamlFileOptions"
    },
    "projen.awscdk.ApprovalLevel": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Which approval is required when deploying CDK apps."
      },
      "fqn": "projen.awscdk.ApprovalLevel",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/awscdk/cdk-config.ts",
        "line": 166
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Approval is never required."
          },
          "name": "NEVER"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Requires approval on any IAM or security-group-related change."
          },
          "name": "ANY_CHANGE"
        },
        {
          "docs": {
            "remarks": "removals don't require approval",
            "stability": "experimental",
            "summary": "Requires approval when IAM statements or traffic rules are added;"
          },
          "name": "BROADENING"
        }
      ],
      "name": "ApprovalLevel",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/cdk-config:ApprovalLevel"
    },
    "projen.awscdk.AutoDiscover": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Discovers and creates integration tests and lambdas from code in the project's source and test trees."
      },
      "fqn": "projen.awscdk.AutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/auto-discover.ts",
          "line": 219
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 218
      },
      "name": "AutoDiscover",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/auto-discover:AutoDiscover"
    },
    "projen.awscdk.AutoDiscoverCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Common options for auto discovering project subcomponents."
      },
      "fqn": "projen.awscdk.AutoDiscoverCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 27
      },
      "name": "AutoDiscoverCommonOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "AWS CDK dependency manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 36
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to the tsconfig file to use for integration tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 31
          },
          "name": "tsconfigPath",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/auto-discover:AutoDiscoverCommonOptions"
    },
    "projen.awscdk.AutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AutoDiscover`."
      },
      "fqn": "projen.awscdk.AutoDiscoverOptions",
      "interfaces": [
        "projen.awscdk.LambdaAutoDiscoverOptions",
        "projen.awscdk.LambdaExtensionAutoDiscoverOptions",
        "projen.awscdk.IntegrationTestAutoDiscoverOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 181
      },
      "name": "AutoDiscoverOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Auto-discover edge lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 197
          },
          "name": "edgeLambdaAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Auto-discover integration tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 211
          },
          "name": "integrationTestAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Auto-discover lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 190
          },
          "name": "lambdaAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Auto-discover lambda extensions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 204
          },
          "name": "lambdaExtensionAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/awscdk/auto-discover:AutoDiscoverOptions"
    },
    "projen.awscdk.AwsCdkConstructLibrary": {
      "assembly": "projen",
      "base": "projen.cdk.ConstructLibrary",
      "docs": {
        "custom": {
          "pjid": "awscdk-construct"
        },
        "remarks": "A multi-language (jsii) construct library which vends constructs designed to\nuse within the AWS CDK with a friendly workflow and automatic publishing to\nthe construct catalog.",
        "stability": "experimental",
        "summary": "AWS CDK construct library project."
      },
      "fqn": "projen.awscdk.AwsCdkConstructLibrary",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-construct.ts",
          "line": 80
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkConstructLibraryOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-construct.ts",
        "line": 77
      },
      "methods": [
        {
          "docs": {
            "deprecated": "Not supported in v2. For v1, use `project.cdkDeps.addV1Dependencies()`",
            "remarks": "Since this is a library project, dependencies will be added as peer dependencies.",
            "stability": "deprecated",
            "summary": "Adds dependencies to AWS CDK modules."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 139
          },
          "name": "addCdkDependencies",
          "parameters": [
            {
              "docs": {
                "summary": "names of cdk modules (e.g. `@aws-cdk/aws-lambda`)."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "deprecated": "Not supported in v2. For v1, use `project.cdkDeps.addV1DevDependencies()`",
            "stability": "deprecated",
            "summary": "Adds AWS CDK modules as dev dependencies."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 149
          },
          "name": "addCdkTestDependencies",
          "parameters": [
            {
              "docs": {
                "summary": "names of cdk modules (e.g. `@aws-cdk/aws-lambda`)."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "AwsCdkConstructLibrary",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 78
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The target CDK version for this library."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 120
          },
          "name": "cdkVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "use `cdkVersion`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 127
          },
          "name": "version",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-construct:AwsCdkConstructLibrary"
    },
    "projen.awscdk.AwsCdkConstructLibraryOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AwsCdkConstructLibrary`."
      },
      "fqn": "projen.awscdk.AwsCdkConstructLibraryOptions",
      "interfaces": [
        "projen.cdk.ConstructLibraryOptions",
        "projen.awscdk.AwsCdkDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-construct.ts",
        "line": 13
      },
      "name": "AwsCdkConstructLibraryOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 33
          },
          "name": "edgeLambdaAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable experimental support for the AWS CDK integ-runner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 58
          },
          "name": "experimentalIntegRunner",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically discovers and creates integration tests for each `.integ.ts` file under your test directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 50
          },
          "name": "integrationTestAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 24
          },
          "name": "lambdaAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 42
          },
          "name": "lambdaExtensionAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Common options for all AWS Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-construct.ts",
            "line": 65
          },
          "name": "lambdaOptions",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-construct:AwsCdkConstructLibraryOptions"
    },
    "projen.awscdk.AwsCdkDeps": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Manages dependencies on the AWS CDK."
      },
      "fqn": "projen.awscdk.AwsCdkDeps",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-deps.ts",
          "line": 168
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkDepsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps.ts",
        "line": 135
      },
      "methods": [
        {
          "docs": {
            "remarks": "The type of dependency is determined by the `dependencyType` option.\n\nThis method is not supported in CDK v2. Use `project.addPeerDeps()` or\n`project.addDeps()` as appropriate.",
            "stability": "experimental",
            "summary": "Adds dependencies to AWS CDK modules."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 225
          },
          "name": "addV1Dependencies",
          "parameters": [
            {
              "docs": {
                "summary": "names of cdk modules (e.g. `@aws-cdk/aws-lambda`)."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "This method is not supported in CDK v2. Use `project.addPeerDeps()` or\n`project.addDeps()` as appropriate.",
            "stability": "experimental",
            "summary": "Adds AWS CDK modules as dev dependencies."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 250
          },
          "name": "addV1DevDependencies",
          "parameters": [
            {
              "docs": {
                "summary": "fully qualified names of cdk modules (e.g. `@aws-cdk/aws-lambda`)."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Return a configuration object with information about package naming in various languages."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 386
          },
          "name": "packageNames",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.awscdk.AwsCdkPackageNames"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 196
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "AwsCdkDeps",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "remarks": "Will return `^2` if the version was unspecified by the user.",
            "stability": "experimental",
            "summary": "The dependency requirement for the CDK CLI (e.g. '^2.3.4')."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 146
          },
          "name": "cdkCliVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "Not used for CDK 2.x",
            "stability": "deprecated",
            "summary": "Whether CDK dependencies are added as normal dependencies (and peer dependencies)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 157
          },
          "name": "cdkDependenciesAsDeps",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The major version of the AWS CDK (e.g. 1, 2, ...)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 162
          },
          "name": "cdkMajorVersion",
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The minimum version of the AWS CDK (e.g. `2.0.0`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 151
          },
          "name": "cdkMinimumVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency requirement for AWS CDK (e.g. `^2.0.0`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 139
          },
          "name": "cdkVersion",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-deps:AwsCdkDeps"
    },
    "projen.awscdk.AwsCdkDepsCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AwsCdkDeps`."
      },
      "fqn": "projen.awscdk.AwsCdkDepsCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps.ts",
        "line": 9
      },
      "name": "AwsCdkDepsCommonOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"2.1.0\"",
            "stability": "experimental",
            "summary": "Minimum version of the AWS CDK to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 15
          },
          "name": "cdkVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "aws-cdk": "/assertions (in V1) and included in `aws-cdk-lib` for V2."
            },
            "default": "- will be included by default for AWS CDK >= 1.0.0 < 2.0.0",
            "deprecated": "The",
            "remarks": "Install the",
            "stability": "deprecated",
            "summary": "Warning: NodeJS only."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 76
          },
          "name": "cdkAssert",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- will be included by default for AWS CDK >= 1.111.0 < 2.0.0",
            "remarks": "Only needed for CDK 1.x. If using CDK 2.x then\nassertions is already included in 'aws-cdk-lib'",
            "stability": "experimental",
            "summary": "Install the assertions library?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 86
          },
          "name": "cdkAssertions",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"^2\"",
            "remarks": "Can be either a specific version, or an NPM version range.\n\nBy default, the latest 2.x version will be installed; you can use this\noption to restrict it to a specific version or version range.",
            "stability": "experimental",
            "summary": "Version range of the AWS CDK CLI to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 27
          },
          "name": "cdkCliVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "For CDK 2.x use \"deps\" instead. (or \"peerDeps\" if you're building a library)",
            "stability": "deprecated",
            "summary": "Which AWS CDKv1 modules this project requires."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 50
          },
          "name": "cdkDependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "Not supported in CDK v2.",
            "remarks": "This is to ensure that downstream consumers actually have your CDK dependencies installed\nwhen using npm < 7 or yarn, where peer dependencies are not automatically installed.\nIf this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure\nthey are present during development.\n\nNote: this setting only applies to construct library projects",
            "stability": "deprecated",
            "summary": "If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 66
          },
          "name": "cdkDependenciesAsDeps",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead",
            "stability": "deprecated",
            "summary": "AWS CDK modules required for testing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 93
          },
          "name": "cdkTestDependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for CDK."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 43
          },
          "name": "cdkVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- for CDK 1.x the default is \"3.2.27\", for CDK 2.x the default is\n\"10.0.5\".",
            "stability": "experimental",
            "summary": "Minimum version of the `constructs` library to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 35
          },
          "name": "constructsVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-deps:AwsCdkDepsCommonOptions"
    },
    "projen.awscdk.AwsCdkDepsJava": {
      "assembly": "projen",
      "base": "projen.awscdk.AwsCdkDeps",
      "docs": {
        "stability": "experimental",
        "summary": "Manages dependencies on the AWS CDK for Java projects."
      },
      "fqn": "projen.awscdk.AwsCdkDepsJava",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-deps.ts",
          "line": 168
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkDepsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps-java.ts",
        "line": 6
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Return a configuration object with information about package naming in various languages."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps-java.ts",
            "line": 7
          },
          "name": "packageNames",
          "overrides": "projen.awscdk.AwsCdkDeps",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.awscdk.AwsCdkPackageNames"
            }
          }
        }
      ],
      "name": "AwsCdkDepsJava",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/awscdk-deps-java:AwsCdkDepsJava"
    },
    "projen.awscdk.AwsCdkDepsJs": {
      "assembly": "projen",
      "base": "projen.awscdk.AwsCdkDeps",
      "docs": {
        "stability": "experimental",
        "summary": "Manages dependencies on the AWS CDK for Node.js projects."
      },
      "fqn": "projen.awscdk.AwsCdkDepsJs",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-deps.ts",
          "line": 168
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkDepsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps-js.ts",
        "line": 6
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Return a configuration object with information about package naming in various languages."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps-js.ts",
            "line": 7
          },
          "name": "packageNames",
          "overrides": "projen.awscdk.AwsCdkDeps",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.awscdk.AwsCdkPackageNames"
            }
          }
        }
      ],
      "name": "AwsCdkDepsJs",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/awscdk-deps-js:AwsCdkDepsJs"
    },
    "projen.awscdk.AwsCdkDepsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.awscdk.AwsCdkDepsOptions",
      "interfaces": [
        "projen.awscdk.AwsCdkDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps.ts",
        "line": 96
      },
      "name": "AwsCdkDepsOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "For libraries, use peer dependencies and for apps use runtime dependencies.",
            "stability": "experimental",
            "summary": "The type of dependency to use for runtime AWS CDK and `constructs` modules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 102
          },
          "name": "dependencyType",
          "type": {
            "fqn": "projen.DependencyType"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-deps:AwsCdkDepsOptions"
    },
    "projen.awscdk.AwsCdkDepsPy": {
      "assembly": "projen",
      "base": "projen.awscdk.AwsCdkDeps",
      "docs": {
        "stability": "experimental",
        "summary": "Manages dependencies on the AWS CDK for Python projects."
      },
      "fqn": "projen.awscdk.AwsCdkDepsPy",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-deps.ts",
          "line": 168
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkDepsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps-py.ts",
        "line": 6
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Return a configuration object with information about package naming in various languages."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps-py.ts",
            "line": 7
          },
          "name": "packageNames",
          "overrides": "projen.awscdk.AwsCdkDeps",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.awscdk.AwsCdkPackageNames"
            }
          }
        }
      ],
      "name": "AwsCdkDepsPy",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/awscdk-deps-py:AwsCdkDepsPy"
    },
    "projen.awscdk.AwsCdkJavaApp": {
      "assembly": "projen",
      "base": "projen.java.JavaProject",
      "docs": {
        "custom": {
          "pjid": "awscdk-app-java"
        },
        "stability": "experimental",
        "summary": "AWS CDK app in Java."
      },
      "fqn": "projen.awscdk.AwsCdkJavaApp",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-app-java.ts",
          "line": 58
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkJavaAppOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-app-java.ts",
        "line": 27
      },
      "methods": [
        {
          "docs": {
            "deprecated": "In CDK 2.x all modules are available by default. Alpha modules should be added using the standard 'deps'",
            "stability": "deprecated",
            "summary": "Adds an AWS CDK module dependencies."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 98
          },
          "name": "addCdkDependency",
          "parameters": [
            {
              "docs": {
                "summary": "The list of modules to depend on (e.g. \"software.amazon.awscdk/aws-lambda\", \"software.amazon.awscdk/aws-iam\", etc)."
              },
              "name": "modules",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "AwsCdkJavaApp",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The `cdk.json` file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 31
          },
          "name": "cdkConfig",
          "type": {
            "fqn": "projen.awscdk.CdkConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "CDK dependency management helper class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 36
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "CDK tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 46
          },
          "name": "cdkTasks",
          "type": {
            "fqn": "projen.awscdk.CdkTasks"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The full name of the main class of the java app (package.Class)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 41
          },
          "name": "mainClass",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the Java class with the static `main()` method."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 56
          },
          "name": "mainClassName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the Java package that includes the main class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 51
          },
          "name": "mainPackage",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-app-java:AwsCdkJavaApp"
    },
    "projen.awscdk.AwsCdkJavaAppOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.awscdk.AwsCdkJavaAppOptions",
      "interfaces": [
        "projen.java.JavaProjectOptions",
        "projen.awscdk.CdkConfigCommonOptions",
        "projen.awscdk.AwsCdkDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-app-java.ts",
        "line": 9
      },
      "name": "AwsCdkJavaAppOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"org.acme.MyApp\"",
            "remarks": "This method\nshould call `app.synth()` on the CDK app.",
            "stability": "experimental",
            "summary": "The name of the Java class with the static `main()` method."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-java.ts",
            "line": 19
          },
          "name": "mainClass",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-app-java:AwsCdkJavaAppOptions"
    },
    "projen.awscdk.AwsCdkPackageNames": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Language-specific AWS CDK package names."
      },
      "fqn": "projen.awscdk.AwsCdkPackageNames",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-deps.ts",
        "line": 108
      },
      "name": "AwsCdkPackageNames",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the assertions library package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 124
          },
          "name": "assertions",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the constructs library package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 120
          },
          "name": "constructs",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the core framework package for CDKv1."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 112
          },
          "name": "coreV1",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the core framework package for CDKv2."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 116
          },
          "name": "coreV2",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the assert library package Can be empty as it's only really available for javascript projects."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-deps.ts",
            "line": 129
          },
          "name": "assert",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-deps:AwsCdkPackageNames"
    },
    "projen.awscdk.AwsCdkPythonApp": {
      "assembly": "projen",
      "base": "projen.python.PythonProject",
      "docs": {
        "custom": {
          "pjid": "awscdk-app-py"
        },
        "stability": "experimental",
        "summary": "AWS CDK app in Python."
      },
      "fqn": "projen.awscdk.AwsCdkPythonApp",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-app-py.ts",
          "line": 78
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkPythonAppOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-app-py.ts",
        "line": 42
      },
      "name": "AwsCdkPythonApp",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK app entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 58
          },
          "name": "appEntrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "cdk.json configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 51
          },
          "name": "cdkConfig",
          "type": {
            "fqn": "projen.awscdk.CdkConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 53
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Common CDK tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 46
          },
          "name": "cdkTasks",
          "type": {
            "fqn": "projen.awscdk.CdkTasks"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK version this app is using."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 74
          },
          "name": "cdkVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which the python sample tests reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 69
          },
          "name": "sampleTestdir",
          "overrides": "projen.python.PythonProject",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "Use `sampleTestdir` instead.",
            "stability": "deprecated",
            "summary": "The directory in which the python tests reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 64
          },
          "name": "testdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-app-py:AwsCdkPythonApp"
    },
    "projen.awscdk.AwsCdkPythonAppOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AwsCdkPythonApp`."
      },
      "fqn": "projen.awscdk.AwsCdkPythonAppOptions",
      "interfaces": [
        "projen.python.PythonProjectOptions",
        "projen.awscdk.CdkConfigCommonOptions",
        "projen.awscdk.AwsCdkDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-app-py.ts",
        "line": 17
      },
      "name": "AwsCdkPythonAppOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"app.py\"",
            "stability": "experimental",
            "summary": "The CDK app's entrypoint (relative to the source directory, which is \"src\" by default)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 27
          },
          "name": "appEntrypoint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tests\"",
            "deprecated": "Use `sampleTestdir` instead.",
            "stability": "deprecated",
            "summary": "Python sources directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-py.ts",
            "line": 34
          },
          "name": "testdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-app-py:AwsCdkPythonAppOptions"
    },
    "projen.awscdk.AwsCdkTypeScriptApp": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptAppProject",
      "docs": {
        "custom": {
          "pjid": "awscdk-app-ts"
        },
        "stability": "experimental",
        "summary": "AWS CDK app in TypeScript."
      },
      "fqn": "projen.awscdk.AwsCdkTypeScriptApp",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-app-ts.ts",
          "line": 108
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkTypeScriptAppOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-app-ts.ts",
        "line": 83
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds an AWS CDK module dependencies."
          },
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 199
          },
          "name": "addCdkDependency",
          "parameters": [
            {
              "docs": {
                "summary": "The list of modules to depend on."
              },
              "name": "modules",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "AwsCdkTypeScriptApp",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK app entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 94
          },
          "name": "appEntrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "cdk.json configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 104
          },
          "name": "cdkConfig",
          "type": {
            "fqn": "projen.awscdk.CdkConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 106
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Common CDK tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 99
          },
          "name": "cdkTasks",
          "type": {
            "fqn": "projen.awscdk.CdkTasks"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK version this app is using."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 87
          },
          "name": "cdkVersion",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-app-ts:AwsCdkTypeScriptApp"
    },
    "projen.awscdk.AwsCdkTypeScriptAppOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.awscdk.AwsCdkTypeScriptAppOptions",
      "interfaces": [
        "projen.typescript.TypeScriptProjectOptions",
        "projen.awscdk.CdkConfigCommonOptions",
        "projen.awscdk.AwsCdkDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-app-ts.ts",
        "line": 15
      },
      "name": "AwsCdkTypeScriptAppOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"main.ts\"",
            "stability": "experimental",
            "summary": "The CDK app's entrypoint (relative to the source directory, which is \"src\" by default)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 25
          },
          "name": "appEntrypoint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 43
          },
          "name": "edgeLambdaAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable experimental support for the AWS CDK integ-runner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 68
          },
          "name": "experimentalIntegRunner",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 60
          },
          "name": "integrationTestAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 34
          },
          "name": "lambdaAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 52
          },
          "name": "lambdaExtensionAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Common options for all AWS Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/awscdk-app-ts.ts",
            "line": 75
          },
          "name": "lambdaOptions",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
          }
        }
      ],
      "symbolId": "src/awscdk/awscdk-app-ts:AwsCdkTypeScriptAppOptions"
    },
    "projen.awscdk.CdkConfig": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Represents cdk.json file."
      },
      "fqn": "projen.awscdk.CdkConfig",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/cdk-config.ts",
          "line": 98
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.CdkConfigOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/cdk-config.ts",
        "line": 77
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add excludes to `cdk.json`."
          },
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 144
          },
          "name": "addExcludes",
          "parameters": [
            {
              "docs": {
                "summary": "The excludes to add."
              },
              "name": "patterns",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add includes to `cdk.json`."
          },
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 136
          },
          "name": "addIncludes",
          "parameters": [
            {
              "docs": {
                "summary": "The includes to add."
              },
              "name": "patterns",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "CdkConfig",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Name of the cdk.out directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 86
          },
          "name": "cdkout",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "List of glob patterns to be excluded by CDK."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 158
          },
          "name": "exclude",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "List of glob patterns to be included by CDK."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 151
          },
          "name": "include",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Represents the JSON file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 81
          },
          "name": "json",
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/awscdk/cdk-config:CdkConfig"
    },
    "projen.awscdk.CdkConfigCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Common options for `cdk.json`."
      },
      "fqn": "projen.awscdk.CdkConfigCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/cdk-config.ts",
        "line": 9
      },
      "name": "CdkConfigCommonOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no build command",
            "remarks": "This command will be called when\nrunning `cdk synth` or when `cdk watch` identifies a change in your source\ncode before redeployment.",
            "stability": "experimental",
            "summary": "A command to execute before synthesis."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 46
          },
          "name": "buildCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"cdk.out\"",
            "stability": "experimental",
            "summary": "cdk.out directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 37
          },
          "name": "cdkout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional context",
            "stability": "experimental",
            "summary": "Additional context to include in `cdk.json`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 15
          },
          "name": "context",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include all feature flags in cdk.json."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 22
          },
          "name": "featureFlags",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "ApprovalLevel.BROADENING",
            "stability": "experimental",
            "summary": "To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 30
          },
          "name": "requireApproval",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.ApprovalLevel"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Glob patterns to exclude from `cdk watch`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 60
          },
          "name": "watchExcludes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Glob patterns to include in `cdk watch`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 53
          },
          "name": "watchIncludes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/awscdk/cdk-config:CdkConfigCommonOptions"
    },
    "projen.awscdk.CdkConfigOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `CdkJson`."
      },
      "fqn": "projen.awscdk.CdkConfigOptions",
      "interfaces": [
        "projen.awscdk.CdkConfigCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/cdk-config.ts",
        "line": 66
      },
      "name": "CdkConfigOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The command line to execute in order to synthesize the CDK application (language specific)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-config.ts",
            "line": 71
          },
          "name": "app",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/cdk-config:CdkConfigOptions"
    },
    "projen.awscdk.CdkTasks": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Adds standard AWS CDK tasks to your project."
      },
      "fqn": "projen.awscdk.CdkTasks",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/cdk-tasks.ts",
          "line": 39
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/cdk-tasks.ts",
        "line": 8
      },
      "name": "CdkTasks",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Deploys your app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-tasks.ts",
            "line": 22
          },
          "name": "deploy",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Destroys all the stacks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-tasks.ts",
            "line": 27
          },
          "name": "destroy",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Diff against production."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-tasks.ts",
            "line": 32
          },
          "name": "diff",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes your app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-tasks.ts",
            "line": 12
          },
          "name": "synth",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes your app and suppresses stdout."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-tasks.ts",
            "line": 17
          },
          "name": "synthSilent",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Watch task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/cdk-tasks.ts",
            "line": 37
          },
          "name": "watch",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/awscdk/cdk-tasks:CdkTasks"
    },
    "projen.awscdk.ConstructLibraryAws": {
      "assembly": "projen",
      "base": "projen.awscdk.AwsCdkConstructLibrary",
      "docs": {
        "deprecated": "use `AwsCdkConstructLibrary`",
        "stability": "deprecated"
      },
      "fqn": "projen.awscdk.ConstructLibraryAws",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/awscdk-construct.ts",
          "line": 80
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.AwsCdkConstructLibraryOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-construct.ts",
        "line": 159
      },
      "name": "ConstructLibraryAws",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/awscdk-construct:ConstructLibraryAws"
    },
    "projen.awscdk.ConstructLibraryAwsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "use `AwsCdkConstructLibraryOptions`",
        "stability": "deprecated"
      },
      "fqn": "projen.awscdk.ConstructLibraryAwsOptions",
      "interfaces": [
        "projen.awscdk.AwsCdkConstructLibraryOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/awscdk-construct.ts",
        "line": 155
      },
      "name": "ConstructLibraryAwsOptions",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/awscdk-construct:ConstructLibraryAwsOptions"
    },
    "projen.awscdk.EdgeLambdaAutoDiscover": {
      "assembly": "projen",
      "base": "projen.cdk.AutoDiscoverBase",
      "docs": {
        "stability": "experimental",
        "summary": "Creates edge lambdas from entry points discovered in the project's source tree."
      },
      "fqn": "projen.awscdk.EdgeLambdaAutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/auto-discover.ts",
          "line": 124
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.EdgeLambdaAutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 123
      },
      "name": "EdgeLambdaAutoDiscover",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/auto-discover:EdgeLambdaAutoDiscover"
    },
    "projen.awscdk.EdgeLambdaAutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `EdgeLambdaAutoDiscover`."
      },
      "fqn": "projen.awscdk.EdgeLambdaAutoDiscoverOptions",
      "interfaces": [
        "projen.awscdk.AutoDiscoverCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 107
      },
      "name": "EdgeLambdaAutoDiscoverOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Project source tree (relative to project output directory)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 112
          },
          "name": "srcdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for AWS Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 117
          },
          "name": "lambdaOptions",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
          }
        }
      ],
      "symbolId": "src/awscdk/auto-discover:EdgeLambdaAutoDiscoverOptions"
    },
    "projen.awscdk.IntegrationTest": {
      "assembly": "projen",
      "base": "projen.cdk.IntegrationTestBase",
      "docs": {
        "stability": "experimental",
        "summary": "Cloud integration tests."
      },
      "fqn": "projen.awscdk.IntegrationTest",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/integration-test.ts",
          "line": 57
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.IntegrationTestOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/integration-test.ts",
        "line": 46
      },
      "name": "IntegrationTest",
      "namespace": "awscdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Destroy the integration test resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/integration-test.ts",
            "line": 50
          },
          "name": "destroyTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The watch task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/integration-test.ts",
            "line": 55
          },
          "name": "watchTask",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/awscdk/integration-test:IntegrationTest"
    },
    "projen.awscdk.IntegrationTestAutoDiscover": {
      "assembly": "projen",
      "base": "projen.cdk.IntegrationTestAutoDiscoverBase",
      "docs": {
        "stability": "experimental",
        "summary": "Creates integration tests from entry points discovered in the test tree."
      },
      "fqn": "projen.awscdk.IntegrationTestAutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/auto-discover.ts",
          "line": 55
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.IntegrationTestAutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 54
      },
      "name": "IntegrationTestAutoDiscover",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/auto-discover:IntegrationTestAutoDiscover"
    },
    "projen.awscdk.IntegrationTestAutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `IntegrationTestAutoDiscover`."
      },
      "fqn": "projen.awscdk.IntegrationTestAutoDiscoverOptions",
      "interfaces": [
        "projen.awscdk.AutoDiscoverCommonOptions",
        "projen.cdk.IntegrationTestAutoDiscoverBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 42
      },
      "name": "IntegrationTestAutoDiscoverOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for integration tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 48
          },
          "name": "integrationTestOptions",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.IntegrationTestCommonOptions"
          }
        }
      ],
      "symbolId": "src/awscdk/auto-discover:IntegrationTestAutoDiscoverOptions"
    },
    "projen.awscdk.IntegrationTestCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.awscdk.IntegrationTestCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/integration-test.ts",
        "line": 9
      },
      "name": "IntegrationTestCommonOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "If disabled, leaves the\napp deployed in the dev account.",
            "stability": "experimental",
            "summary": "Destroy the test app after a successful deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/integration-test.ts",
            "line": 15
          },
          "name": "destroyAfterDeploy",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enables path metadata, adding `aws:cdk:path`, with the defining construct's path, to the CloudFormation metadata for each synthesized resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/integration-test.ts",
            "line": 22
          },
          "name": "pathMetadata",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/awscdk/integration-test:IntegrationTestCommonOptions"
    },
    "projen.awscdk.IntegrationTestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `IntegrationTest`."
      },
      "fqn": "projen.awscdk.IntegrationTestOptions",
      "interfaces": [
        "projen.awscdk.IntegrationTestCommonOptions",
        "projen.cdk.IntegrationTestBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/integration-test.ts",
        "line": 28
      },
      "name": "IntegrationTestOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "AWS CDK dependency manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/integration-test.ts",
            "line": 40
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\"**\"]",
            "stability": "experimental",
            "summary": "A list of stacks within the integration test to deploy/destroy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/integration-test.ts",
            "line": 35
          },
          "name": "stacks",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/awscdk/integration-test:IntegrationTestOptions"
    },
    "projen.awscdk.LambdaAutoDiscover": {
      "assembly": "projen",
      "base": "projen.cdk.AutoDiscoverBase",
      "docs": {
        "stability": "experimental",
        "summary": "Creates lambdas from entry points discovered in the project's source tree."
      },
      "fqn": "projen.awscdk.LambdaAutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/auto-discover.ts",
          "line": 88
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.LambdaAutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 87
      },
      "name": "LambdaAutoDiscover",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/auto-discover:LambdaAutoDiscover"
    },
    "projen.awscdk.LambdaAutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `LambdaAutoDiscover`."
      },
      "fqn": "projen.awscdk.LambdaAutoDiscoverOptions",
      "interfaces": [
        "projen.awscdk.AutoDiscoverCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 72
      },
      "name": "LambdaAutoDiscoverOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Project source tree (relative to project output directory)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 76
          },
          "name": "srcdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for AWS Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 81
          },
          "name": "lambdaOptions",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
          }
        }
      ],
      "symbolId": "src/awscdk/auto-discover:LambdaAutoDiscoverOptions"
    },
    "projen.awscdk.LambdaExtension": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Create a Lambda Extension."
      },
      "fqn": "projen.awscdk.LambdaExtension",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/lambda-extension.ts",
          "line": 82
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.LambdaExtensionOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/lambda-extension.ts",
        "line": 81
      },
      "name": "LambdaExtension",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/lambda-extension:LambdaExtension"
    },
    "projen.awscdk.LambdaExtensionAutoDiscover": {
      "assembly": "projen",
      "base": "projen.cdk.AutoDiscoverBase",
      "docs": {
        "stability": "experimental",
        "summary": "Creates Lambda Extensions from entrypoints discovered in the project's source tree."
      },
      "fqn": "projen.awscdk.LambdaExtensionAutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/auto-discover.ts",
          "line": 162
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.LambdaExtensionAutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 161
      },
      "name": "LambdaExtensionAutoDiscover",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/auto-discover:LambdaExtensionAutoDiscover"
    },
    "projen.awscdk.LambdaExtensionAutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `LambdaExtensionAutoDiscover`."
      },
      "fqn": "projen.awscdk.LambdaExtensionAutoDiscoverOptions",
      "interfaces": [
        "projen.awscdk.AutoDiscoverCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/auto-discover.ts",
        "line": 144
      },
      "name": "LambdaExtensionAutoDiscoverOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Project source tree (relative to project output directory)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 149
          },
          "name": "srcdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for lambda extensions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/auto-discover.ts",
            "line": 154
          },
          "name": "lambdaExtensionOptions",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.LambdaExtensionCommonOptions"
          }
        }
      ],
      "symbolId": "src/awscdk/auto-discover:LambdaExtensionAutoDiscoverOptions"
    },
    "projen.awscdk.LambdaExtensionCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Common options for creating lambda extensions."
      },
      "fqn": "projen.awscdk.LambdaExtensionCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/lambda-extension.ts",
        "line": 17
      },
      "name": "LambdaExtensionCommonOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "remarks": "If not specified the default bundling options specified for the project\n`Bundler` instance will be used.",
            "stability": "experimental",
            "summary": "Bundling options for this AWS Lambda extension."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 31
          },
          "name": "bundlingOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.BundlingOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The extension's compatible runtimes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 21
          },
          "name": "compatibleRuntimes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.awscdk.LambdaRuntime"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/awscdk/lambda-extension:LambdaExtensionCommonOptions"
    },
    "projen.awscdk.LambdaExtensionOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for creating lambda extensions."
      },
      "fqn": "projen.awscdk.LambdaExtensionOptions",
      "interfaces": [
        "projen.awscdk.LambdaExtensionCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/lambda-extension.ts",
        "line": 37
      },
      "name": "LambdaExtensionOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "AWS CDK dependency manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 58
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"src/subdir/foo.lambda-extension.ts\"",
            "remarks": "This is relative to the root directory of the project.",
            "stability": "experimental",
            "summary": "A path from the project root directory to a TypeScript file which contains the AWS Lambda extension entrypoint (stand-alone script)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 53
          },
          "name": "entrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The name of the entrypoint file, with the `-layer-version.ts`\nsuffix instead of `.lambda-extension.ts`.",
            "remarks": "This file should also be\nunder the source tree.",
            "stability": "experimental",
            "summary": "The name of the generated TypeScript source file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 67
          },
          "name": "constructFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- A pascal cased version of the name of the entrypoint file, with\nthe extension `LayerVersion` (e.g. `AppConfigLayerVersion`).",
            "stability": "experimental",
            "summary": "The name of the generated `lambda.LayerVersion` subclass."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 75
          },
          "name": "constructName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Derived from the entrypoint filename.",
            "stability": "experimental",
            "summary": "Name of the extension."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-extension.ts",
            "line": 43
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/lambda-extension:LambdaExtensionOptions"
    },
    "projen.awscdk.LambdaFunction": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "example": "new LambdaFunction(myProject, {\n  srcdir: myProject.srcdir,\n  entrypoint: 'src/foo.lambda.ts',\n});",
        "remarks": "To use this, create an AWS Lambda handler file under your source tree with\nthe `.lambda.ts` extension and add a `LambdaFunction` component to your\ntypescript project pointing to this entrypoint.\n\nThis will add a task to your \"compile\" step which will use `esbuild` to\nbundle the handler code into the build directory. It will also generate a\nfile `src/foo-function.ts` with a custom AWS construct called `FooFunction`\nwhich extends `@aws-cdk/aws-lambda.Function` which is bound to the bundled\nhandle through an asset.",
        "stability": "experimental",
        "summary": "Generates a pre-bundled AWS Lambda function construct from handler code."
      },
      "fqn": "projen.awscdk.LambdaFunction",
      "initializer": {
        "docs": {
          "stability": "experimental",
          "summary": "Defines a pre-bundled AWS Lambda function construct from handler code."
        },
        "locationInModule": {
          "filename": "src/awscdk/lambda-function.ts",
          "line": 127
        },
        "parameters": [
          {
            "docs": {
              "summary": "The project to use."
            },
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "docs": {
              "summary": "Options."
            },
            "name": "options",
            "type": {
              "fqn": "projen.awscdk.LambdaFunctionOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/lambda-function.ts",
        "line": 120
      },
      "name": "LambdaFunction",
      "namespace": "awscdk",
      "symbolId": "src/awscdk/lambda-function:LambdaFunction"
    },
    "projen.awscdk.LambdaFunctionCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Applies to all functions in\nauto-discovery.",
        "stability": "experimental",
        "summary": "Common options for `LambdaFunction`."
      },
      "fqn": "projen.awscdk.LambdaFunctionCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/lambda-function.ts",
        "line": 20
      },
      "name": "LambdaFunctionCommonOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This sets the `AWS_NODEJS_CONNECTION_REUSE_ENABLED` environment variable\nto `1`.\n\nNot applicable when `edgeLambda` is set to `true` because environment\nvariables are not supported in Lambda@Edge.",
            "see": "https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html",
            "stability": "experimental",
            "summary": "Whether to automatically reuse TCP connections when working with the AWS SDK for JavaScript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 52
          },
          "name": "awsSdkConnectionReuse",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "remarks": "If not specified the default bundling options specified for the project\n`Bundler` instance will be used.",
            "stability": "experimental",
            "summary": "Bundling options for this AWS Lambda function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 36
          },
          "name": "bundlingOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.BundlingOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether to create a `cloudfront.experimental.EdgeFunction` instead of a `lambda.Function`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 60
          },
          "name": "edgeLambda",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Runtime.NODEJS_18_X",
            "stability": "experimental",
            "summary": "The node.js version to target."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 26
          },
          "name": "runtime",
          "optional": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        }
      ],
      "symbolId": "src/awscdk/lambda-function:LambdaFunctionCommonOptions"
    },
    "projen.awscdk.LambdaFunctionOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Function`."
      },
      "fqn": "projen.awscdk.LambdaFunctionOptions",
      "interfaces": [
        "projen.awscdk.LambdaFunctionCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/lambda-function.ts",
        "line": 66
      },
      "name": "LambdaFunctionOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "AWS CDK dependency manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 97
          },
          "name": "cdkDeps",
          "type": {
            "fqn": "projen.awscdk.AwsCdkDeps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"src/subdir/foo.lambda.ts\"",
            "remarks": "This is relative to the root directory of the project.",
            "stability": "experimental",
            "summary": "A path from the project root directory to a TypeScript file which contains the AWS Lambda handler entrypoint (exports a `handler` function)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 75
          },
          "name": "entrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The name of the entrypoint file, with the `-function.ts` suffix\ninstead of `.lambda.ts`.",
            "remarks": "This file should also be\nunder the source tree.",
            "stability": "experimental",
            "summary": "The name of the generated TypeScript source file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 84
          },
          "name": "constructFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- A pascal cased version of the name of the entrypoint file, with\nthe extension `Function` (e.g. `ResizeImageFunction`).",
            "stability": "experimental",
            "summary": "The name of the generated `lambda.Function` subclass."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 92
          },
          "name": "constructName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/lambda-function:LambdaFunctionOptions"
    },
    "projen.awscdk.LambdaRuntime": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The runtime for the AWS Lambda function."
      },
      "fqn": "projen.awscdk.LambdaRuntime",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/awscdk/lambda-function.ts",
          "line": 373
        },
        "parameters": [
          {
            "docs": {
              "summary": "The Node.js runtime to use."
            },
            "name": "functionRuntime",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "The esbuild setting to use."
            },
            "name": "esbuildTarget",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "Options for this runtime."
            },
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.awscdk.LambdaRuntimeOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/awscdk/lambda-function.ts",
        "line": 302
      },
      "name": "LambdaRuntime",
      "namespace": "awscdk",
      "properties": [
        {
          "const": true,
          "docs": {
            "deprecated": "Node.js 10 runtime has been deprecated on Jul 30, 2021",
            "stability": "deprecated",
            "summary": "Node.js 10.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 307
          },
          "name": "NODEJS_10_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "const": true,
          "docs": {
            "deprecated": "Node.js 12 runtime has been deprecated on Mar 31, 2023",
            "stability": "deprecated",
            "summary": "Node.js 12.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 317
          },
          "name": "NODEJS_12_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "const": true,
          "docs": {
            "deprecated": "Node.js 14 runtime has been deprecated on Dec 4, 2023",
            "stability": "deprecated",
            "summary": "Node.js 14.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 327
          },
          "name": "NODEJS_14_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "const": true,
          "docs": {
            "deprecated": "Node.js 16 runtime has been deprecated on Jun 12, 2024",
            "stability": "deprecated",
            "summary": "Node.js 16.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 337
          },
          "name": "NODEJS_16_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "const": true,
          "docs": {
            "remarks": "Advanced notice: Node.js 18 runtime will be deprecated on Jul 31, 2025",
            "stability": "experimental",
            "summary": "Node.js 18.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 348
          },
          "name": "NODEJS_18_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "Node.js 20.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 356
          },
          "name": "NODEJS_20_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "Node.js 22.x."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 364
          },
          "name": "NODEJS_22_X",
          "static": true,
          "type": {
            "fqn": "projen.awscdk.LambdaRuntime"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 371
          },
          "name": "defaultExternals",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 369
          },
          "name": "esbuildPlatform",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The esbuild setting to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 382
          },
          "name": "esbuildTarget",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The Node.js runtime to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 377
          },
          "name": "functionRuntime",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/awscdk/lambda-function:LambdaRuntime"
    },
    "projen.awscdk.LambdaRuntimeOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for the AWS Lambda function runtime."
      },
      "fqn": "projen.awscdk.LambdaRuntimeOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/awscdk/lambda-function.ts",
        "line": 290
      },
      "name": "LambdaRuntimeOptions",
      "namespace": "awscdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "['@aws-sdk/*']",
            "stability": "experimental",
            "summary": "Packages that are considered externals by default when bundling."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/awscdk/lambda-function.ts",
            "line": 296
          },
          "name": "defaultExternals",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/awscdk/lambda-function:LambdaRuntimeOptions"
    },
    "projen.build.AddPostBuildJobCommandsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `BuildWorkflow.addPostBuildJobCommands`."
      },
      "fqn": "projen.build.AddPostBuildJobCommandsOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/build/build-workflow.ts",
        "line": 487
      },
      "name": "AddPostBuildJobCommandsOptions",
      "namespace": "build",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Check out the repository at the pull request branch before commands are run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 499
          },
          "name": "checkoutRepo",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Currently only supported for `NodeProject`.",
            "stability": "experimental",
            "summary": "Install project dependencies before running commands. `checkoutRepo` must also be set to true."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 509
          },
          "name": "installDeps",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 517
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 524
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Tools that should be installed before the commands are run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 491
          },
          "name": "tools",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Tools"
          }
        }
      ],
      "symbolId": "src/build/build-workflow:AddPostBuildJobCommandsOptions"
    },
    "projen.build.AddPostBuildJobTaskOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `BuildWorkflow.addPostBuildJobTask`."
      },
      "fqn": "projen.build.AddPostBuildJobTaskOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/build/build-workflow.ts",
        "line": 462
      },
      "name": "AddPostBuildJobTaskOptions",
      "namespace": "build",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 474
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 481
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Tools that should be installed before the task is run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 466
          },
          "name": "tools",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Tools"
          }
        }
      ],
      "symbolId": "src/build/build-workflow:AddPostBuildJobTaskOptions"
    },
    "projen.build.BuildWorkflow": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.build.BuildWorkflow",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/build/build-workflow.ts",
          "line": 153
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.build.BuildWorkflowOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/build/build-workflow.ts",
        "line": 137
      },
      "methods": [
        {
          "docs": {
            "remarks": "Jobs are executed _only_ if the build did NOT self mutate. If the build\nself-mutate, the branch will either be updated or the build will fail (in\nforks), so there is no point in executing the post-build job.",
            "stability": "experimental",
            "summary": "Adds another job to the build workflow which is executed after the build job succeeded."
          },
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 258
          },
          "name": "addPostBuildJob",
          "parameters": [
            {
              "docs": {
                "summary": "The id of the new job."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The job specification."
              },
              "name": "job",
              "type": {
                "fqn": "projen.github.workflows.Job"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Jobs are executed _only_ if the build did NOT self mutate. If the build\nself-mutate, the branch will either be updated or the build will fail (in\nforks), so there is no point in executing the post-build job.",
            "stability": "experimental",
            "summary": "Run a sequence of commands as a job within the build workflow which is executed after the build job succeeded."
          },
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 332
          },
          "name": "addPostBuildJobCommands",
          "parameters": [
            {
              "name": "id",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "commands",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "docs": {
                "summary": "Specify tools and other options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.build.AddPostBuildJobCommandsOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The job will have access to build artifacts and will install project\ndependencies in order to be able to run any commands used in the tasks.\n\nJobs are executed _only_ if the build did NOT self mutate. If the build\nself-mutate, the branch will either be updated or the build will fail (in\nforks), so there is no point in executing the post-build job.",
            "stability": "experimental",
            "summary": "Run a task as a job within the build workflow which is executed after the build job succeeded."
          },
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 306
          },
          "name": "addPostBuildJobTask",
          "parameters": [
            {
              "name": "task",
              "type": {
                "fqn": "projen.Task"
              }
            },
            {
              "docs": {
                "summary": "Specify tools and other options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.build.AddPostBuildJobTaskOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds steps that are executed after the build."
          },
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 243
          },
          "name": "addPostBuildSteps",
          "parameters": [
            {
              "docs": {
                "summary": "The job steps."
              },
              "name": "steps",
              "type": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "BuildWorkflow",
      "namespace": "build",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns a list of job IDs that are part of the build."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 235
          },
          "name": "buildJobIds",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Name of generated github workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 141
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/build/build-workflow:BuildWorkflow"
    },
    "projen.build.BuildWorkflowCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.build.BuildWorkflowCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/build/build-workflow.ts",
        "line": 42
      },
      "name": "BuildWorkflowCommonOptions",
      "namespace": "build",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"build\"",
            "stability": "experimental",
            "summary": "Name of the buildfile (e.g. \"build\" becomes \"build.yml\")."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 48
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "`{ contents: JobPermission.WRITE }`",
            "stability": "experimental",
            "summary": "Permissions granted to the build job To limit job permissions for `contents`, the desired permissions have to be explicitly set, e.g.: `{ contents: JobPermission.NONE }`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 67
          },
          "name": "permissions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermissions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Steps to execute before the build."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 54
          },
          "name": "preBuildSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"{ pullRequest: {}, workflowDispatch: {} }\"",
            "stability": "experimental",
            "summary": "Build workflow triggers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 60
          },
          "name": "workflowTriggers",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Triggers"
          }
        }
      ],
      "symbolId": "src/build/build-workflow:BuildWorkflowCommonOptions"
    },
    "projen.build.BuildWorkflowOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.build.BuildWorkflowOptions",
      "interfaces": [
        "projen.build.BuildWorkflowCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/build/build-workflow.ts",
        "line": 70
      },
      "name": "BuildWorkflowOptions",
      "namespace": "build",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The task to execute in order to build the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 74
          },
          "name": "buildTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"dist\"",
            "stability": "experimental",
            "summary": "A name of a directory that includes build artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 80
          },
          "name": "artifactsDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the default workflow container",
            "stability": "experimental",
            "summary": "The container image to use for builds."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 86
          },
          "name": "containerImage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Build environment variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 119
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default identity",
            "stability": "experimental",
            "summary": "Git identity to use for the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 113
          },
          "name": "gitIdentity",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This means that any files synthesized by projen or e.g. test snapshots will\nalways be up-to-date before a PR is merged.\n\nImplies that PR builds do not have anti-tamper checks.\n\nThis is enabled by default only if `githubTokenSecret` is set. Otherwise it\nis disabled, which implies that file changes that happen during build will\nnot be pushed back to the branch.",
            "stability": "experimental",
            "summary": "Automatically update files modified during builds to pull-request branches."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 101
          },
          "name": "mutableBuild",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Steps to execute after build."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 107
          },
          "name": "postBuildSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 127
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/build/build-workflow.ts",
            "line": 134
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        }
      ],
      "symbolId": "src/build/build-workflow:BuildWorkflowOptions"
    },
    "projen.cdk.AutoDiscoverBase": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Base class for auto-discovering and creating project subcomponents."
      },
      "fqn": "projen.cdk.AutoDiscoverBase",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk/auto-discover-base.ts",
          "line": 36
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk.AutoDiscoverBaseOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk/auto-discover-base.ts",
        "line": 29
      },
      "name": "AutoDiscoverBase",
      "namespace": "cdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Auto-discovered entry points with paths relative to the project directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/auto-discover-base.ts",
            "line": 34
          },
          "name": "entrypoints",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/cdk/auto-discover-base:AutoDiscoverBase"
    },
    "projen.cdk.AutoDiscoverBaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AutoDiscoverBase`."
      },
      "fqn": "projen.cdk.AutoDiscoverBaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/auto-discover-base.ts",
        "line": 10
      },
      "name": "AutoDiscoverBaseOptions",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "\".integ.ts\"",
            "stability": "experimental",
            "summary": "Locate files with the given extension."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/auto-discover-base.ts",
            "line": 16
          },
          "name": "extension",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"test\"",
            "stability": "experimental",
            "summary": "Locate entrypoints in the given project directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/auto-discover-base.ts",
            "line": 23
          },
          "name": "projectdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/auto-discover-base:AutoDiscoverBaseOptions"
    },
    "projen.cdk.Catalog": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.Catalog",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/construct-lib.ts",
        "line": 24
      },
      "name": "Catalog",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Should we announce new versions?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/construct-lib.ts",
            "line": 34
          },
          "name": "announce",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "mention": "in announcement tweet."
            },
            "stability": "experimental",
            "summary": "Twitter account to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/construct-lib.ts",
            "line": 28
          },
          "name": "twitter",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/construct-lib:Catalog"
    },
    "projen.cdk.ConstructLibrary": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.cdk.JsiiProject",
      "docs": {
        "stability": "experimental",
        "summary": "A multi-language library for CDK constructs."
      },
      "fqn": "projen.cdk.ConstructLibrary",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk/construct-lib.ts",
          "line": 41
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk.ConstructLibraryOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk/construct-lib.ts",
        "line": 40
      },
      "name": "ConstructLibrary",
      "namespace": "cdk",
      "symbolId": "src/cdk/construct-lib:ConstructLibrary"
    },
    "projen.cdk.ConstructLibraryOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.ConstructLibraryOptions",
      "interfaces": [
        "projen.cdk.JsiiProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/construct-lib.ts",
        "line": 3
      },
      "name": "ConstructLibraryOptions",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- new version will be announced",
            "remarks": "https://awscdk.io/packages/[@SCOPE/]PACKAGE@VERSION\n\nThe catalog will also post a tweet to https://twitter.com/awscdkio with the\npackage name, description and the above link. You can disable these tweets\nthrough `{ announce: false }`.\n\nYou can also add a Twitter handle through `{ twitter: 'xx' }` which will be\nmentioned in the tweet.",
            "see": "https://github.com/construct-catalog/catalog",
            "stability": "experimental",
            "summary": "Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/construct-lib.ts",
            "line": 21
          },
          "name": "catalog",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.Catalog"
          }
        }
      ],
      "symbolId": "src/cdk/construct-lib:ConstructLibraryOptions"
    },
    "projen.cdk.IntegrationTestAutoDiscoverBase": {
      "assembly": "projen",
      "base": "projen.cdk.AutoDiscoverBase",
      "docs": {
        "stability": "experimental",
        "summary": "Base class for locating integration tests in the project's test tree."
      },
      "fqn": "projen.cdk.IntegrationTestAutoDiscoverBase",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk/auto-discover-base.ts",
          "line": 61
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk.IntegrationTestAutoDiscoverBaseOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk/auto-discover-base.ts",
        "line": 60
      },
      "name": "IntegrationTestAutoDiscoverBase",
      "namespace": "cdk",
      "symbolId": "src/cdk/auto-discover-base:IntegrationTestAutoDiscoverBase"
    },
    "projen.cdk.IntegrationTestAutoDiscoverBaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `IntegrationTestAutoDiscoverBase`."
      },
      "fqn": "projen.cdk.IntegrationTestAutoDiscoverBaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/auto-discover-base.ts",
        "line": 50
      },
      "name": "IntegrationTestAutoDiscoverBaseOptions",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Test source tree."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/auto-discover-base.ts",
            "line": 54
          },
          "name": "testdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/auto-discover-base:IntegrationTestAutoDiscoverBaseOptions"
    },
    "projen.cdk.IntegrationTestBase": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.IntegrationTestBase",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk/integration-test-base.ts",
          "line": 65
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk.IntegrationTestBaseOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk/integration-test-base.ts",
        "line": 34
      },
      "name": "IntegrationTestBase",
      "namespace": "cdk",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes the integration test and compares against a local copy (runs during build)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 43
          },
          "name": "assertTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Deploy the integration test and update the snapshot upon success."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 38
          },
          "name": "deployTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Integration test name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 63
          },
          "name": "name",
          "protected": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Snapshot output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 58
          },
          "name": "snapshotDir",
          "protected": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Just update snapshot (without deployment)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 48
          },
          "name": "snapshotTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Temporary directory for each integration test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 53
          },
          "name": "tmpDir",
          "protected": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/integration-test-base:IntegrationTestBase"
    },
    "projen.cdk.IntegrationTestBaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for IntegrationTest."
      },
      "fqn": "projen.cdk.IntegrationTestBaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/integration-test-base.ts",
        "line": 11
      },
      "name": "IntegrationTestBaseOptions",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "\"test/subdir/foo.integ.ts\"",
            "remarks": "This is relative to the root directory of the project.",
            "stability": "experimental",
            "summary": "A path from the project root directory to a TypeScript file which contains the integration test app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 26
          },
          "name": "entrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The path of the tsconfig.json file to use when running integration test cdk apps."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 31
          },
          "name": "tsconfigPath",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Derived from the entrypoint filename.",
            "stability": "experimental",
            "summary": "Name of the integration test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/integration-test-base.ts",
            "line": 16
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/integration-test-base:IntegrationTestBaseOptions"
    },
    "projen.cdk.JsiiDocgen": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Creates a markdown file based on the jsii manifest: - Adds a `docgen` script to package.json - Runs `jsii-docgen` after compilation - Enforces that markdown file is checked in."
      },
      "fqn": "projen.cdk.JsiiDocgen",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk/jsii-docgen.ts",
          "line": 30
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.cdk.JsiiDocgenOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk/jsii-docgen.ts",
        "line": 29
      },
      "name": "JsiiDocgen",
      "namespace": "cdk",
      "symbolId": "src/cdk/jsii-docgen:JsiiDocgen"
    },
    "projen.cdk.JsiiDocgenOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `JsiiDocgen`."
      },
      "fqn": "projen.cdk.JsiiDocgenOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/jsii-docgen.ts",
        "line": 8
      },
      "name": "JsiiDocgenOptions",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"API.md\"",
            "stability": "experimental",
            "summary": "File path for generated docs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-docgen.ts",
            "line": 13
          },
          "name": "filePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'*'",
            "stability": "experimental",
            "summary": "A semver version string to install a specific version of jsii-docgen."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-docgen.ts",
            "line": 20
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/jsii-docgen:JsiiDocgenOptions"
    },
    "projen.cdk.JsiiDotNetTarget": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.JsiiDotNetTarget",
      "interfaces": [
        "projen.release.NugetPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 161
      },
      "name": "JsiiDotNetTarget",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 162
          },
          "name": "dotNetNamespace",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 163
          },
          "name": "packageId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 164
          },
          "name": "iconUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/jsii-project:JsiiDotNetTarget"
    },
    "projen.cdk.JsiiGoTarget": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Go target configuration."
      },
      "fqn": "projen.cdk.JsiiGoTarget",
      "interfaces": [
        "projen.release.GoPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 170
      },
      "name": "JsiiGoTarget",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "github.com/owner/repo",
            "remarks": "The module itself will always be published under a subdirectory named according\nto the `packageName` of the module (e.g. github.com/foo/bar/pkg).",
            "stability": "experimental",
            "summary": "The name of the target repository in which this module will be published (e.g. github.com/owner/repo)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 179
          },
          "name": "moduleName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "projen": "/foo-bar will be projenfoobar)."
            },
            "default": "- derived from the JavaScript module name",
            "remarks": "If not specified, package name will be derived from the JavaScript module name\nby removing non-alphanumeric characters (e.g.",
            "stability": "experimental",
            "summary": "The name of the Go package name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 189
          },
          "name": "packageName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "experimental",
            "summary": "A suffix appended at the end of the module version (e.g `\"-devprefix\"`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 196
          },
          "name": "versionSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/jsii-project:JsiiGoTarget"
    },
    "projen.cdk.JsiiJavaTarget": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.JsiiJavaTarget",
      "interfaces": [
        "projen.release.MavenPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 150
      },
      "name": "JsiiJavaTarget",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 151
          },
          "name": "javaPackage",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 153
          },
          "name": "mavenArtifactId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 152
          },
          "name": "mavenGroupId",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/jsii-project:JsiiJavaTarget"
    },
    "projen.cdk.JsiiProject": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptProject",
      "docs": {
        "custom": {
          "pjid": "jsii"
        },
        "stability": "experimental",
        "summary": "Multi-language jsii library project."
      },
      "fqn": "projen.cdk.JsiiProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk/jsii-project.ts",
          "line": 208
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk.JsiiProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 204
      },
      "name": "JsiiProject",
      "namespace": "cdk",
      "symbolId": "src/cdk/jsii-project:JsiiProject"
    },
    "projen.cdk.JsiiProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.JsiiProjectOptions",
      "interfaces": [
        "projen.typescript.TypeScriptProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 32
      },
      "name": "JsiiProjectOptions",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "$GIT_USER_NAME",
            "stability": "experimental",
            "summary": "The name of the library author."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 48
          },
          "name": "author",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "$GIT_USER_EMAIL",
            "stability": "experimental",
            "summary": "Email or URL of the library author."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 54
          },
          "name": "authorAddress",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "$GIT_REMOTE",
            "stability": "experimental",
            "summary": "Git repository URL."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 42
          },
          "name": "repositoryUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "- You can manually run compatibility tests using `yarn compat` if this feature is disabled.\n- You can ignore compatibility failures by adding lines to a \".compatignore\" file.",
            "stability": "experimental",
            "summary": "Automatically run API compatibility test against the latest version published to npm after compilation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 98
          },
          "name": "compat",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\".compatignore\"",
            "stability": "experimental",
            "summary": "Name of the ignore file for API compatibility tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 105
          },
          "name": "compatIgnore",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Emit a compressed version of the assembly."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 126
          },
          "name": "compressAssembly",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"API.md\"",
            "stability": "experimental",
            "summary": "File path for generated docs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 120
          },
          "name": "docgenFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "use `publishToNuget`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 88
          },
          "name": "dotnet",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.JsiiDotNetTarget"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Files matching any of those patterns will be excluded from the TypeScript compiler input.\n\nBy default, jsii will include all *.ts files (except .d.ts files) in the TypeScript compiler input.\nThis can be problematic for example when the package's build or test procedure generates .ts files\nthat cannot be compiled with jsii's compiler settings.",
            "stability": "experimental",
            "summary": "Accepts a list of glob patterns."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 114
          },
          "name": "excludeTypescript",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "pjnew": "\"~5.8.0\""
            },
            "default": "\"~5.6.0\"",
            "remarks": "Set to \"*\" if you want to manually manage the version of jsii in your\nproject by managing updates to `package.json` on your own.\n\nNOTE: The jsii compiler releases since 5.0.0 are not semantically versioned\nand should remain on the same minor, so we recommend using a `~` dependency\n(e.g. `~5.0.0`).",
            "stability": "experimental",
            "summary": "Version of the jsii compiler to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 141
          },
          "name": "jsiiVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no publishing",
            "stability": "experimental",
            "summary": "Publish Go bindings to a git repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 72
          },
          "name": "publishToGo",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.JsiiGoTarget"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no publishing",
            "stability": "experimental",
            "summary": "Publish to maven."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 60
          },
          "name": "publishToMaven",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.JsiiJavaTarget"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no publishing",
            "stability": "experimental",
            "summary": "Publish to NuGet."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 83
          },
          "name": "publishToNuget",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.JsiiDotNetTarget"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no publishing",
            "stability": "experimental",
            "summary": "Publish to pypi."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 66
          },
          "name": "publishToPypi",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.JsiiPythonTarget"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "use `publishToPyPi`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 77
          },
          "name": "python",
          "optional": true,
          "type": {
            "fqn": "projen.cdk.JsiiPythonTarget"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\".\"",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 36
          },
          "name": "rootdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/jsii-project:JsiiProjectOptions"
    },
    "projen.cdk.JsiiPythonTarget": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.JsiiPythonTarget",
      "interfaces": [
        "projen.release.PyPiPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 156
      },
      "name": "JsiiPythonTarget",
      "namespace": "cdk",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 157
          },
          "name": "distName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk/jsii-project.ts",
            "line": 158
          },
          "name": "module",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk/jsii-project:JsiiPythonTarget"
    },
    "projen.cdk.Stability": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk.Stability",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/cdk/jsii-project.ts",
        "line": 144
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "EXPERIMENTAL"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "STABLE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEPRECATED"
        }
      ],
      "name": "Stability",
      "namespace": "cdk",
      "symbolId": "src/cdk/jsii-project:Stability"
    },
    "projen.cdk8s.AutoDiscover": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Automatically discovers and creates `IntegrationTest`s from entry points found in the test tree."
      },
      "fqn": "projen.cdk8s.AutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/auto-discover.ts",
          "line": 27
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.AutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/auto-discover.ts",
        "line": 26
      },
      "name": "AutoDiscover",
      "namespace": "cdk8s",
      "symbolId": "src/cdk8s/auto-discover:AutoDiscover"
    },
    "projen.cdk8s.AutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AutoDiscover`."
      },
      "fqn": "projen.cdk8s.AutoDiscoverOptions",
      "interfaces": [
        "projen.cdk8s.IntegrationTestAutoDiscoverOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/auto-discover.ts",
        "line": 12
      },
      "name": "AutoDiscoverOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically discover integration tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/auto-discover.ts",
            "line": 19
          },
          "name": "integrationTestAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/cdk8s/auto-discover:AutoDiscoverOptions"
    },
    "projen.cdk8s.Cdk8sDeps": {
      "abstract": true,
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Manages dependencies on the CDK8s."
      },
      "fqn": "projen.cdk8s.Cdk8sDeps",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/cdk8s-deps.ts",
          "line": 154
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.Cdk8sDepsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-deps.ts",
        "line": 134
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Return a configuration object with information about package naming in various languages."
          },
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 198
          },
          "name": "packageNames",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.cdk8s.Cdk8sPackageNames"
            }
          }
        }
      ],
      "name": "Cdk8sDeps",
      "namespace": "cdk8s",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The major version of the CDK8s (e.g. 1, 2, ...)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 148
          },
          "name": "cdk8sMajorVersion",
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The minimum version of the CDK8s (e.g. `2.0.0`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 143
          },
          "name": "cdk8sMinimumVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The dependency requirement for CDK8s."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 138
          },
          "name": "cdk8sVersion",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sDeps"
    },
    "projen.cdk8s.Cdk8sDepsCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Cdk8sDeps`."
      },
      "fqn": "projen.cdk8s.Cdk8sDepsCommonOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-deps.ts",
        "line": 9
      },
      "name": "Cdk8sDepsCommonOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"2.3.33\"",
            "stability": "experimental",
            "summary": "Minimum version of the cdk8s to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 15
          },
          "name": "cdk8sVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"2.0.28\"",
            "stability": "experimental",
            "summary": "Minimum version of the cdk8s-cli to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 22
          },
          "name": "cdk8sCliVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for cdk8s-cli."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 49
          },
          "name": "cdk8sCliVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include cdk8s-plus."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 66
          },
          "name": "cdk8sPlus",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"2.0.0-rc.26\"",
            "stability": "experimental",
            "summary": "Minimum version of the cdk8s-plus-XX to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 82
          },
          "name": "cdk8sPlusVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for cdk8s-plus-17."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 92
          },
          "name": "cdk8sPlusVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for cdk8s."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 39
          },
          "name": "cdk8sVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"10.1.42\"",
            "stability": "experimental",
            "summary": "Minimum version of the `constructs` library to depend on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 29
          },
          "name": "constructsVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your consructs package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for constructs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 59
          },
          "name": "constructsVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "22",
            "stability": "experimental",
            "summary": "The cdk8s-plus library depends of Kubernetes minor version For example, cdk8s-plus-22 targets kubernetes version 1.22.0 cdk8s-plus-21 targets kubernetes version 1.21.0."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 75
          },
          "name": "k8sMinorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sDepsCommonOptions"
    },
    "projen.cdk8s.Cdk8sDepsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk8s.Cdk8sDepsOptions",
      "interfaces": [
        "projen.cdk8s.Cdk8sDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-deps.ts",
        "line": 95
      },
      "name": "Cdk8sDepsOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Add cdk8s-cli only to Node projects."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 108
          },
          "name": "cdk8sCliDependency",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "For libraries, use peer dependencies and for apps use runtime dependencies.",
            "stability": "experimental",
            "summary": "The type of dependency to use for runtime CDK8s and `constructs` modules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 101
          },
          "name": "dependencyType",
          "type": {
            "fqn": "projen.DependencyType"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sDepsOptions"
    },
    "projen.cdk8s.Cdk8sDepsPy": {
      "assembly": "projen",
      "base": "projen.cdk8s.Cdk8sDeps",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk8s.Cdk8sDepsPy",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/cdk8s-deps.ts",
          "line": 154
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.Cdk8sDepsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-deps-py.ts",
        "line": 3
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Return a configuration object with information about package naming in various languages."
          },
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps-py.ts",
            "line": 4
          },
          "name": "packageNames",
          "overrides": "projen.cdk8s.Cdk8sDeps",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.cdk8s.Cdk8sPackageNames"
            }
          }
        }
      ],
      "name": "Cdk8sDepsPy",
      "namespace": "cdk8s",
      "symbolId": "src/cdk8s/cdk8s-deps-py:Cdk8sDepsPy"
    },
    "projen.cdk8s.Cdk8sPackageNames": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk8s.Cdk8sPackageNames",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-deps.ts",
        "line": 111
      },
      "name": "Cdk8sPackageNames",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the core framework package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 115
          },
          "name": "cdk8s",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the cdk9s-plus-XX library package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 128
          },
          "name": "cdk8sPlus",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Fully qualified name of the constructs library package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 124
          },
          "name": "constructs",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Used only on Node projects",
            "stability": "experimental",
            "summary": "Fully qualified name of the client package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-deps.ts",
            "line": 120
          },
          "name": "cdk8sClient",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sPackageNames"
    },
    "projen.cdk8s.Cdk8sPythonApp": {
      "assembly": "projen",
      "base": "projen.python.PythonProject",
      "docs": {
        "custom": {
          "pjid": "cdk8s-app-py"
        },
        "stability": "experimental",
        "summary": "CDK8s app in Python."
      },
      "fqn": "projen.cdk8s.Cdk8sPythonApp",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/cdk8s-app-py.ts",
          "line": 48
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.Cdk8sPythonOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-app-py.ts",
        "line": 40
      },
      "name": "Cdk8sPythonApp",
      "namespace": "cdk8s",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK8s app entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-py.ts",
            "line": 44
          },
          "name": "appEntrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-py.ts",
            "line": 46
          },
          "name": "cdk8sDeps",
          "type": {
            "fqn": "projen.cdk8s.Cdk8sDeps"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-app-py:Cdk8sPythonApp"
    },
    "projen.cdk8s.Cdk8sPythonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Cdk8sPythonApp`."
      },
      "fqn": "projen.cdk8s.Cdk8sPythonOptions",
      "interfaces": [
        "projen.python.PythonProjectOptions",
        "projen.cdk8s.Cdk8sDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-app-py.ts",
        "line": 9
      },
      "name": "Cdk8sPythonOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"app.py\"",
            "stability": "experimental",
            "summary": "The CDK8s app's entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-py.ts",
            "line": 31
          },
          "name": "appEntrypoint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional specs imported",
            "stability": "experimental",
            "summary": "Import additional specs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-py.ts",
            "line": 24
          },
          "name": "cdk8sImports",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Use the cdk8s default",
            "stability": "experimental",
            "summary": "Import a specific Kubernetes spec version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-py.ts",
            "line": 17
          },
          "name": "k8sSpecVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-app-py:Cdk8sPythonOptions"
    },
    "projen.cdk8s.Cdk8sTypeScriptApp": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptAppProject",
      "docs": {
        "custom": {
          "pjid": "cdk8s-app-ts"
        },
        "stability": "experimental",
        "summary": "CDK8s app in TypeScript."
      },
      "fqn": "projen.cdk8s.Cdk8sTypeScriptApp",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/cdk8s-app-ts.ts",
          "line": 61
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.Cdk8sTypeScriptAppOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-app-ts.ts",
        "line": 53
      },
      "name": "Cdk8sTypeScriptApp",
      "namespace": "cdk8s",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK8s app entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-ts.ts",
            "line": 57
          },
          "name": "appEntrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-ts.ts",
            "line": 59
          },
          "name": "cdk8sDeps",
          "type": {
            "fqn": "projen.cdk8s.Cdk8sDeps"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-app-ts:Cdk8sTypeScriptApp"
    },
    "projen.cdk8s.Cdk8sTypeScriptAppOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk8s.Cdk8sTypeScriptAppOptions",
      "interfaces": [
        "projen.typescript.TypeScriptProjectOptions",
        "projen.cdk8s.Cdk8sDepsCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-app-ts.ts",
        "line": 11
      },
      "name": "Cdk8sTypeScriptAppOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"main.ts\"",
            "stability": "experimental",
            "summary": "The CDK8s app's entrypoint (relative to the source directory, which is \"src\" by default)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-ts.ts",
            "line": 34
          },
          "name": "appEntrypoint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional specs imported",
            "stability": "experimental",
            "summary": "Import additional specs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-ts.ts",
            "line": 26
          },
          "name": "cdk8sImports",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `cdk8s.IntegrationTest` for each `.integ.ts` app in your test directory. If this is disabled, you can manually add an `cdk8s.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-ts.ts",
            "line": 43
          },
          "name": "integrationTestAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Use the cdk8s default",
            "stability": "experimental",
            "summary": "Import a specific Kubernetes spec version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-app-ts.ts",
            "line": 19
          },
          "name": "k8sSpecVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-app-ts:Cdk8sTypeScriptAppOptions"
    },
    "projen.cdk8s.ConstructLibraryCdk8s": {
      "assembly": "projen",
      "base": "projen.cdk.ConstructLibrary",
      "docs": {
        "custom": {
          "pjid": "cdk8s-construct"
        },
        "remarks": "A multi-language (jsii) construct library which vends constructs designed to\nuse within the CDK for Kubernetes (CDK8s), with a friendly workflow and\nautomatic publishing to the construct catalog.",
        "stability": "experimental",
        "summary": "CDK8s construct library project."
      },
      "fqn": "projen.cdk8s.ConstructLibraryCdk8s",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/cdk8s-construct.ts",
          "line": 82
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.ConstructLibraryCdk8sOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-construct.ts",
        "line": 71
      },
      "name": "ConstructLibraryCdk8s",
      "namespace": "cdk8s",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CDK8s version this app is using."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 75
          },
          "name": "cdk8sVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The constructs version this app is using."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 80
          },
          "name": "constructsVersion",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-construct:ConstructLibraryCdk8s"
    },
    "projen.cdk8s.ConstructLibraryCdk8sOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk8s.ConstructLibraryCdk8sOptions",
      "interfaces": [
        "projen.cdk.ConstructLibraryOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/cdk8s-construct.ts",
        "line": 5
      },
      "name": "ConstructLibraryCdk8sOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "\"1.4.10\"",
            "stability": "experimental",
            "summary": "Minimum target version this library is tested against."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 12
          },
          "name": "cdk8sVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for cdk8s-plus-17."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 50
          },
          "name": "cdk8sPlusVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for CDK8s."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 30
          },
          "name": "cdk8sVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"3.3.196\"",
            "stability": "experimental",
            "summary": "constructs verion."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 20
          },
          "name": "constructsVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You can use this to prevent yarn to mix versions for your consructs package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
            "stability": "experimental",
            "summary": "Use pinned version instead of caret version for constructs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 40
          },
          "name": "constructsVersionPinning",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically adds an `cdk8s.IntegrationTest` for each `.integ.ts` app in your test directory. If this is disabled, you can manually add an `cdk8s.AutoDiscover` component to your project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/cdk8s-construct.ts",
            "line": 59
          },
          "name": "integrationTestAutoDiscover",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/cdk8s/cdk8s-construct:ConstructLibraryCdk8sOptions"
    },
    "projen.cdk8s.IntegrationTest": {
      "assembly": "projen",
      "base": "projen.cdk.IntegrationTestBase",
      "docs": {
        "stability": "experimental",
        "summary": "CDK8S integration test."
      },
      "fqn": "projen.cdk8s.IntegrationTest",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/integration-test.ts",
          "line": 15
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.IntegrationTestOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/integration-test.ts",
        "line": 14
      },
      "name": "IntegrationTest",
      "namespace": "cdk8s",
      "symbolId": "src/cdk8s/integration-test:IntegrationTest"
    },
    "projen.cdk8s.IntegrationTestAutoDiscover": {
      "assembly": "projen",
      "base": "projen.cdk.IntegrationTestAutoDiscoverBase",
      "docs": {
        "stability": "experimental",
        "summary": "Discovers and creates integration tests from files in the test root."
      },
      "fqn": "projen.cdk8s.IntegrationTestAutoDiscover",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdk8s/auto-discover.ts",
          "line": 48
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdk8s.IntegrationTestAutoDiscoverOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdk8s/auto-discover.ts",
        "line": 47
      },
      "name": "IntegrationTestAutoDiscover",
      "namespace": "cdk8s",
      "symbolId": "src/cdk8s/auto-discover:IntegrationTestAutoDiscover"
    },
    "projen.cdk8s.IntegrationTestAutoDiscoverOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdk8s.IntegrationTestAutoDiscoverOptions",
      "interfaces": [
        "projen.cdk.IntegrationTestAutoDiscoverBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/auto-discover.ts",
        "line": 36
      },
      "name": "IntegrationTestAutoDiscoverOptions",
      "namespace": "cdk8s",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to the tsconfig file to use for integration tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdk8s/auto-discover.ts",
            "line": 41
          },
          "name": "tsconfigPath",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdk8s/auto-discover:IntegrationTestAutoDiscoverOptions"
    },
    "projen.cdk8s.IntegrationTestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for IntegrationTest."
      },
      "fqn": "projen.cdk8s.IntegrationTestOptions",
      "interfaces": [
        "projen.cdk.IntegrationTestBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdk8s/integration-test.ts",
        "line": 9
      },
      "name": "IntegrationTestOptions",
      "namespace": "cdk8s",
      "symbolId": "src/cdk8s/integration-test:IntegrationTestOptions"
    },
    "projen.cdktf.ConstructLibraryCdktf": {
      "assembly": "projen",
      "base": "projen.cdk.ConstructLibrary",
      "docs": {
        "custom": {
          "pjid": "cdktf-construct"
        },
        "remarks": "A multi-language (jsii) construct library which vends constructs designed to\nuse within the CDK for Terraform (CDKTF), with a friendly workflow and\nautomatic publishing to the construct catalog.",
        "stability": "experimental",
        "summary": "CDKTF construct library project."
      },
      "fqn": "projen.cdktf.ConstructLibraryCdktf",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/cdktf/cdktf-construct.ts",
          "line": 29
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.cdktf.ConstructLibraryCdktfOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/cdktf/cdktf-construct.ts",
        "line": 28
      },
      "name": "ConstructLibraryCdktf",
      "namespace": "cdktf",
      "symbolId": "src/cdktf/cdktf-construct:ConstructLibraryCdktf"
    },
    "projen.cdktf.ConstructLibraryCdktfOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.cdktf.ConstructLibraryCdktfOptions",
      "interfaces": [
        "projen.cdk.ConstructLibraryOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/cdktf/cdktf-construct.ts",
        "line": 4
      },
      "name": "ConstructLibraryCdktfOptions",
      "namespace": "cdktf",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "\"^0.13.0\"",
            "stability": "experimental",
            "summary": "Minimum target version this library is tested against."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdktf/cdktf-construct.ts",
            "line": 10
          },
          "name": "cdktfVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"^10.3.0\"",
            "stability": "experimental",
            "summary": "Construct version to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/cdktf/cdktf-construct.ts",
            "line": 16
          },
          "name": "constructsVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/cdktf/cdktf-construct:ConstructLibraryCdktfOptions"
    },
    "projen.circleci.CircleCiProps": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/",
        "stability": "experimental",
        "summary": "Options for class {@link Circleci}."
      },
      "fqn": "projen.circleci.CircleCiProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/circleci.ts",
        "line": 12
      },
      "name": "CircleCiProps",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "https://circleci.com/docs/2.0/configuration-reference/#jobs",
            "stability": "experimental",
            "summary": "List of Jobs to create unique steps per pipeline, e.g. ```json jobs: [{  identifier: \"compile\",  docker: { image: \"golang:alpine\" }  steps: [\"checkout\", run: {command: \"go build .\"}] }] ```."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 59
          },
          "name": "jobs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.circleci.Job"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Contains a map of CirclCi Orbs ```json orbs: {  node: \"circleci/node@5.0.1\"  slack: \"circleci/slack@4.8.3\" } ```."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 22
          },
          "name": "orbs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://circleci.com/docs/2.0/configuration-reference/#setup",
            "stability": "experimental",
            "summary": "The setup field enables you to conditionally trigger configurations from outside the primary .circleci parent directory, update pipeline parameters, or generate customized configurations."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 66
          },
          "name": "setup",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "2.1",
            "see": "https://circleci.com/docs/2.0/configuration-reference/#version",
            "stability": "experimental",
            "summary": "pipeline version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 29
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://circleci.com/docs/2.0/configuration-reference/#workflows",
            "stability": "experimental",
            "summary": "List of Workflows of pipeline, e.g. ```json workflows: {   {     identifier: \"build\",       jobs: [{          identifier: \"node/install\",          context: [\"npm\"],       }]   } } ```."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 46
          },
          "name": "workflows",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.circleci.Workflow"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/circleci/circleci:CircleCiProps"
    },
    "projen.circleci.Circleci": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/",
        "stability": "experimental",
        "summary": "Circleci Class to manage `.circleci/config.yml`. Check projen's docs for more information."
      },
      "fqn": "projen.circleci.Circleci",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/circleci/circleci.ts",
          "line": 101
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.circleci.CircleCiProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/circleci/circleci.ts",
        "line": 75
      },
      "methods": [
        {
          "docs": {
            "remarks": "Will throw error if the orb already exists",
            "stability": "experimental",
            "summary": "Add a Circleci Orb to pipeline."
          },
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 180
          },
          "name": "addOrb",
          "parameters": [
            {
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "orb",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "add new workflow to existing pipeline."
          },
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 147
          },
          "name": "addWorkflow",
          "parameters": [
            {
              "name": "workflow",
              "type": {
                "fqn": "projen.circleci.Workflow"
              }
            }
          ]
        }
      ],
      "name": "Circleci",
      "namespace": "circleci",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The yaml file for the Circleci pipeline."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/circleci.ts",
            "line": 79
          },
          "name": "file",
          "type": {
            "fqn": "projen.YamlFile"
          }
        }
      ],
      "symbolId": "src/circleci/circleci:Circleci"
    },
    "projen.circleci.Docker": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#docker",
        "stability": "experimental",
        "summary": "Options for docker executor."
      },
      "fqn": "projen.circleci.Docker",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 201
      },
      "name": "Docker",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of a custom docker image to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 203
          },
          "name": "image",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Authentication for registries using standard docker login credentials."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 215
          },
          "name": "auth",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Authentication for AWS Elastic Container Registry (ECR)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 217
          },
          "name": "awsAuth",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The command used as pid 1 (or args for entrypoint) when launching the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 209
          },
          "name": "command",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The command used as executable when launching the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 207
          },
          "name": "entrypoint",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A map of environment variable names and values."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 213
          },
          "name": "environment",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "number"
                    },
                    {
                      "primitive": "boolean"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "By default, container services are accessible through localhost",
            "stability": "experimental",
            "summary": "The name the container is reachable by."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 205
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Which user to run commands as within the Docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 211
          },
          "name": "user",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:Docker"
    },
    "projen.circleci.Filter": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Branches can have the keys only and ignore which either map to a single string naming a branch.\nYou may also use regular expressions to match against branches by enclosing them with /’s, or map to a list of such strings.\nRegular expressions must match the entire string.\n\nAny branches that match only will run the job.\nAny branches that match ignore will not run the job.\nIf neither only nor ignore are specified then all branches will run the job.\nIf both only and ignore are specified the only is considered before ignore.",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#filters",
        "stability": "experimental",
        "summary": "The branches key controls whether the current branch should have a schedule trigger created for it, where current branch is the branch containing the config.yml file with the trigger stanza. That is, a push on the main branch will only schedule a workflow for the main branch."
      },
      "fqn": "projen.circleci.Filter",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 157
      },
      "name": "Filter",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 158
          },
          "name": "branches",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.FilterConfig"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 159
          },
          "name": "tags",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.FilterConfig"
          }
        }
      ],
      "symbolId": "src/circleci/model:Filter"
    },
    "projen.circleci.FilterConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#filters",
        "stability": "experimental",
        "summary": "set an inclusive or exclusive filter."
      },
      "fqn": "projen.circleci.FilterConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 166
      },
      "name": "FilterConfig",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Either a single branch specifier, or a list of branch specifiers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 170
          },
          "name": "ignore",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Either a single branch specifier, or a list of branch specifiers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 168
          },
          "name": "only",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/circleci/model:FilterConfig"
    },
    "projen.circleci.Job": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Jobs are specified in the jobs map,\nsee Sample 2.0 config.yml for two examples of a job map.\nThe name of the job is the key in the map, and the value is a map describing the job.\nEach job consists of the job’s name as a key and a map as a value. A name should be case insensitive unique within a current jobs list.",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#job_name",
        "stability": "experimental",
        "summary": "A Workflow is comprised of one or more uniquely named jobs."
      },
      "fqn": "projen.circleci.Job",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 77
      },
      "name": "Job",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "name of dynamic key *."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 10
          },
          "name": "identifier",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 178
          },
          "name": "docker",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.circleci.Docker"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A map of environment variable names and values."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 192
          },
          "name": "environment",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "number"
                    },
                    {
                      "primitive": "boolean"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 179
          },
          "name": "machine",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.Machine"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 180
          },
          "name": "macos",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.Macos"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Number of parallel instances of this job to run (default: 1)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 190
          },
          "name": "parallelism",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parameters for making a job explicitly configurable in a workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 184
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.circleci.PipelineParameter"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "{@link ResourceClass}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 194
          },
          "name": "resourceClass",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Can be overridden by shell in each step",
            "stability": "experimental",
            "summary": "Shell to use for execution command in all steps."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 182
          },
          "name": "shell",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "no type support here, for syntax {@see https://circleci.com/docs/2.0/configuration-reference/#steps}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 186
          },
          "name": "steps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Will be interpreted as an absolute path. Default: `~/project`",
            "stability": "experimental",
            "summary": "In which directory to run the steps."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 188
          },
          "name": "workingDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:Job"
    },
    "projen.circleci.JobType": {
      "assembly": "projen",
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#type",
        "stability": "experimental",
        "summary": "A job may have a type of approval indicating it must be manually approved before downstream jobs may proceed."
      },
      "fqn": "projen.circleci.JobType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 32
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "APPROVAL"
        }
      ],
      "name": "JobType",
      "namespace": "circleci",
      "symbolId": "src/circleci/model:JobType"
    },
    "projen.circleci.JobWhen": {
      "assembly": "projen",
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#steps",
        "stability": "experimental",
        "summary": "Specify when to enable or disable the step."
      },
      "fqn": "projen.circleci.JobWhen",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 54
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ON_SUCCESS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ON_FAIL"
        }
      ],
      "name": "JobWhen",
      "namespace": "circleci",
      "symbolId": "src/circleci/model:JobWhen"
    },
    "projen.circleci.Machine": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.circleci.Machine",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 220
      },
      "name": "Machine",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "https://circleci.com/docs/2.0/configuration-reference/#available-machine-images",
            "stability": "experimental",
            "summary": "The VM image to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 225
          },
          "name": "image",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://circleci.com/docs/2.0/configuration-reference/#available-machine-images",
            "stability": "experimental",
            "summary": "enable docker layer caching."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 229
          },
          "name": "dockerLayerCaching",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:Machine"
    },
    "projen.circleci.Macos": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "To run a job in a macOS virtual machine,\nyou must add the macos key to the top-level configuration for the job and specify\nthe version of Xcode you would like to use.",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#macos",
        "stability": "experimental",
        "summary": "CircleCI supports running jobs on macOS, to allow you to build, test, and deploy apps for macOS, iOS, tvOS and watchOS."
      },
      "fqn": "projen.circleci.Macos",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 239
      },
      "name": "Macos",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The version of Xcode that is installed on the virtual machine."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 241
          },
          "name": "xcode",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:Macos"
    },
    "projen.circleci.Matrix": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#matrix-requires-version-21",
        "stability": "experimental",
        "summary": "The matrix stanza allows you to run a parameterized job multiple times with different arguments."
      },
      "fqn": "projen.circleci.Matrix",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 116
      },
      "name": "Matrix",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Defaults to the name of the job being executed",
            "stability": "experimental",
            "summary": "An alias for the matrix, usable from another job’s requires stanza."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 120
          },
          "name": "alias",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A map of parameter names to every value the job should be called with."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 118
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "collection": {
                        "elementtype": {
                          "primitive": "string"
                        },
                        "kind": "array"
                      }
                    },
                    {
                      "collection": {
                        "elementtype": {
                          "primitive": "number"
                        },
                        "kind": "array"
                      }
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/circleci/model:Matrix"
    },
    "projen.circleci.PipelineParameter": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/reusing-config#using-the-parameters-declaration",
        "stability": "experimental",
        "summary": "Parameters are declared by name under a job, command, or executor."
      },
      "fqn": "projen.circleci.PipelineParameter",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 103
      },
      "name": "PipelineParameter",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The parameter type, required."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 107
          },
          "name": "type",
          "type": {
            "fqn": "projen.circleci.PipelineParameterType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If not present, the parameter is implied to be required.",
            "stability": "experimental",
            "summary": "The default value for the parameter."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 109
          },
          "name": "default",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "primitive": "number"
                },
                {
                  "primitive": "boolean"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Used to generate documentation for your orb."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 105
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:PipelineParameter"
    },
    "projen.circleci.PipelineParameterType": {
      "assembly": "projen",
      "docs": {
        "see": "https://circleci.com/docs/2.0/reusing-config#parameter-syntax",
        "stability": "experimental",
        "summary": "Pipeline parameter types."
      },
      "fqn": "projen.circleci.PipelineParameterType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 64
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "STRING"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "BOOLEAN"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "INTEGER"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ENUM"
        }
      ],
      "name": "PipelineParameterType",
      "namespace": "circleci",
      "symbolId": "src/circleci/model:PipelineParameterType"
    },
    "projen.circleci.ResourceClass": {
      "assembly": "projen",
      "docs": {
        "remarks": "Different resource classes are available for different executors, as described in the tables below.",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#resourceclass",
        "stability": "experimental",
        "summary": "The resource_class feature allows configuring CPU and RAM resources for each job."
      },
      "fqn": "projen.circleci.ResourceClass",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 41
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "SMALL"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "MEDIUM"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "MEDIUM_PLUS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "LARGE_X"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "LARGE_2X"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "LARGE_2X_PLUS"
        }
      ],
      "name": "ResourceClass",
      "namespace": "circleci",
      "symbolId": "src/circleci/model:ResourceClass"
    },
    "projen.circleci.Run": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Run commands are executed using non-login shells by default,\nso you must explicitly source any dotfiles as part of the command.\n\nNot used because type incompatible types in steps array",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#run",
        "stability": "experimental",
        "summary": "Used for invoking all command-line programs, taking either a map of configuration values, or, when called in its short-form, a string that will be used as both the command and name."
      },
      "fqn": "projen.circleci.Run",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 262
      },
      "name": "Run",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Command to run via the shell."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 264
          },
          "name": "command",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Whether this step should run in the background (default: false)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 272
          },
          "name": "background",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional environmental variables, locally scoped to command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 270
          },
          "name": "environment",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Title of the step to be shown in the CircleCI UI (default: full command)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 266
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Elapsed time the command can run without output such as “20m”, “1.25h”, “5s”. The default is 10 minutes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 276
          },
          "name": "noOutputTimeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Shell to use for execution command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 268
          },
          "name": "shell",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Specify when to enable or disable the step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 278
          },
          "name": "when",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Will be interpreted relative to the working_directory of the job). (default: .)",
            "stability": "experimental",
            "summary": "In which directory to run this step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 274
          },
          "name": "workingDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:Run"
    },
    "projen.circleci.Schedule": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#schedule",
        "stability": "experimental",
        "summary": "A workflow may have a schedule indicating it runs at a certain time."
      },
      "fqn": "projen.circleci.Schedule",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 136
      },
      "name": "Schedule",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 139
          },
          "name": "filters",
          "type": {
            "fqn": "projen.circleci.Filter"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The cron key is defined using POSIX crontab syntax."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 138
          },
          "name": "cron",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/circleci/model:Schedule"
    },
    "projen.circleci.StepRun": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://circleci.com/docs/2.0/configuration-reference/#steps",
        "stability": "experimental",
        "summary": "Execution steps for Job."
      },
      "fqn": "projen.circleci.StepRun",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 248
      },
      "name": "StepRun",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 249
          },
          "name": "run",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.Run"
          }
        }
      ],
      "symbolId": "src/circleci/model:StepRun"
    },
    "projen.circleci.Triggers": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Default behavior is to trigger the workflow when pushing to a branch.",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#triggers",
        "stability": "experimental",
        "summary": "Specifies which triggers will cause this workflow to be executed."
      },
      "fqn": "projen.circleci.Triggers",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 128
      },
      "name": "Triggers",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 129
          },
          "name": "schedule",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.Schedule"
          }
        }
      ],
      "symbolId": "src/circleci/model:Triggers"
    },
    "projen.circleci.Workflow": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Each workflow consists of the workflow name as a key and a map as a value.\nA name should be unique within the current config.yml.\nThe top-level keys for the Workflows configuration are version and jobs.",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#workflows",
        "stability": "experimental",
        "summary": "Used for orchestrating all jobs."
      },
      "fqn": "projen.circleci.Workflow",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 19
      },
      "name": "Workflow",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "name of dynamic key *."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 10
          },
          "name": "identifier",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 20
          },
          "name": "jobs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.circleci.WorkflowJob"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 21
          },
          "name": "triggers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.circleci.Triggers"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Check Docu as reference",
            "see": "https://circleci.com/docs/2.0/configuration-reference/#logic-statement-examples",
            "stability": "experimental",
            "summary": "when is too dynamic to be casted to interfaces."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 25
          },
          "name": "when",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        }
      ],
      "symbolId": "src/circleci/model:Workflow"
    },
    "projen.circleci.WorkflowJob": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "A Job can be created with {@link Job} or it can be provided by the orb",
        "see": "https://circleci.com/docs/2.0/configuration-reference/#jobs-in-workflow",
        "stability": "experimental",
        "summary": "A Job is part of Workflow."
      },
      "fqn": "projen.circleci.WorkflowJob",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/circleci/model.ts",
        "line": 83
      },
      "name": "WorkflowJob",
      "namespace": "circleci",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "name of dynamic key *."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 10
          },
          "name": "identifier",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "The initial default name is org-global. Each context name must be unique.",
            "stability": "experimental",
            "summary": "The name of the context(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 89
          },
          "name": "context",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Job Filters can have the key branches or tags."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 93
          },
          "name": "filters",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.Filter"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 94
          },
          "name": "matrix",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.Matrix"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Useful when calling a job multiple times",
            "stability": "experimental",
            "summary": "A replacement for the job name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 87
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parameters passed to job when referencing a job from orb."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 96
          },
          "name": "orbParameters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "number"
                    },
                    {
                      "primitive": "boolean"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of jobs that must succeed for the job to start."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 85
          },
          "name": "requires",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A job may have a type of approval indicating it must be manually approved before downstream jobs may proceed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/circleci/model.ts",
            "line": 91
          },
          "name": "type",
          "optional": true,
          "type": {
            "fqn": "projen.circleci.JobType"
          }
        }
      ],
      "symbolId": "src/circleci/model:WorkflowJob"
    },
    "projen.github.AutoApprove": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Auto approve pull requests that meet a criteria."
      },
      "fqn": "projen.github.AutoApprove",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/auto-approve.ts",
          "line": 60
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.AutoApproveOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/auto-approve.ts",
        "line": 57
      },
      "name": "AutoApprove",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-approve.ts",
            "line": 58
          },
          "name": "label",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/auto-approve:AutoApprove"
    },
    "projen.github.AutoApproveOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for 'AutoApprove'."
      },
      "fqn": "projen.github.AutoApproveOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/auto-approve.ts",
        "line": 9
      },
      "name": "AutoApproveOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "['github-bot']",
            "stability": "experimental",
            "summary": "Only pull requests authored by these Github usernames will be auto-approved."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-approve.ts",
            "line": 14
          },
          "name": "allowedUsernames",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'auto-approve'",
            "stability": "experimental",
            "summary": "Only pull requests with this label will be auto-approved."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-approve.ts",
            "line": 20
          },
          "name": "label",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-approve.ts",
            "line": 44
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-approve.ts",
            "line": 51
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"GITHUB_TOKEN\"",
            "remarks": "This token is used to approve pull requests.\n\nGithub forbids an identity to approve its own pull request.\nIf your project produces automated pull requests using the Github default token -\n{@link https://docs.github.com/en/actions/reference/authentication-in-a-workflow `GITHUB_TOKEN` }\n- that you would like auto approved, such as when using the `depsUpgrade` property in\n`NodeProjectOptions`, then you must use a different token here.",
            "stability": "experimental",
            "summary": "A GitHub secret name which contains a GitHub Access Token with write permissions for the `pull_request` scope."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-approve.ts",
            "line": 36
          },
          "name": "secret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/auto-approve:AutoApproveOptions"
    },
    "projen.github.AutoMerge": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "> [!NOTE]\n> GitHub now natively provides the same features, so you don't need Mergify\n> anymore. See `GitHubOptions.mergeQueue` and `MergeQueueOptions.autoQueue`.\n\nIf `buildJob` is specified, the specified GitHub workflow job ID is required\nto succeed in order for the PR to be merged.\n\n`approvedReviews` specified the number of code review approvals required for\nthe PR to be merged.",
        "see": "https://mergify.com/",
        "stability": "experimental",
        "summary": "Automatically merge Pull Requests using Mergify."
      },
      "fqn": "projen.github.AutoMerge",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/auto-merge.ts",
          "line": 48
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.AutoMergeOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/auto-merge.ts",
        "line": 45
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds conditions to the auto merge rule."
          },
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 106
          },
          "name": "addConditions",
          "parameters": [
            {
              "docs": {
                "summary": "The conditions to add (mergify syntax)."
              },
              "name": "conditions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds conditions that will be rendered only during synthesis."
          },
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 114
          },
          "name": "addConditionsLater",
          "parameters": [
            {
              "docs": {
                "summary": "The later."
              },
              "name": "later",
              "type": {
                "fqn": "projen.github.IAddConditionsLater"
              }
            }
          ]
        }
      ],
      "name": "AutoMerge",
      "namespace": "github",
      "symbolId": "src/github/auto-merge:AutoMerge"
    },
    "projen.github.AutoMergeOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.AutoMergeOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/auto-merge.ts",
        "line": 4
      },
      "name": "AutoMergeOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "1",
            "stability": "experimental",
            "summary": "Number of approved code reviews."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 9
          },
          "name": "approvedReviews",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "['do-not-merge']",
            "stability": "experimental",
            "summary": "List of labels that will prevent auto-merging."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 15
          },
          "name": "blockingLabels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'default'",
            "stability": "experimental",
            "summary": "Name of the mergify queue."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 27
          },
          "name": "queueName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'Automatic merge on approval and successful build'",
            "stability": "experimental",
            "summary": "Name of the mergify rule."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 21
          },
          "name": "ruleName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/auto-merge:AutoMergeOptions"
    },
    "projen.github.AutoQueue": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Automatically add pull requests to the merge queue PRs will be merged once they pass required checks."
      },
      "fqn": "projen.github.AutoQueue",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/auto-queue.ts",
          "line": 95
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.AutoQueueOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/auto-queue.ts",
        "line": 94
      },
      "name": "AutoQueue",
      "namespace": "github",
      "symbolId": "src/github/auto-queue:AutoQueue"
    },
    "projen.github.AutoQueueOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for 'AutoQueue'."
      },
      "fqn": "projen.github.AutoQueueOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/auto-queue.ts",
        "line": 19
      },
      "name": "AutoQueueOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- pull requests from all users are eligible for auto-queuing",
            "stability": "experimental",
            "summary": "Only pull requests authored by these Github usernames will have auto-queue enabled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-queue.ts",
            "line": 24
          },
          "name": "allowedUsernames",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- all pull requests are eligible for auto-queueing",
            "stability": "experimental",
            "summary": "Only pull requests with one of this labels will have auto-queue enabled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-queue.ts",
            "line": 30
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "MergeMethod.SQUASH",
            "stability": "experimental",
            "summary": "The method used to add the PR to the merge queue Any branch protection rules must allow this merge method."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-queue.ts",
            "line": 49
          },
          "name": "mergeMethod",
          "optional": true,
          "type": {
            "fqn": "projen.github.MergeMethod"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- uses credentials from the GitHub component",
            "remarks": "The workflow cannot use a default github token. Queuing a PR\nwith the default token will not trigger any merge queue workflows,\nwhich results in the PR just not getting merged at all.",
            "see": "https://projen.io/docs/integrations/github/",
            "stability": "experimental",
            "summary": "Choose a method for authenticating with GitHub to enable auto-queue on pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-queue.ts",
            "line": 42
          },
          "name": "projenCredentials",
          "optional": true,
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-queue.ts",
            "line": 55
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This set of branches should be a subset of `MergeQueueOptions.targetBranches`.\n\nBe sure not to enable `autoQueue` for branches that don't have branch rules\nwith merge requirements set up, otherwise new PRs will be merged\nimmediately after creating without a chance for review.\n\n## Automatically merging a set of Stacked PRs\n\nIf you set this to `['main']` you can automatically merge a set of Stacked PRs\nin the right order. It works like this:\n\n- Create PR #1 from branch `a`, targeting `main`.\n- Create PR #2 from branch `b`, targeting branch `a`.\n- Create PR #3 from branch `c`, targeting branch `b`.\n\nInitially, PR #1 will be set to auto-merge, PRs #2 and #3 will not.\n\nOnce PR #1 passes all of its requirements it will merge. That will delete\nbranch `a` and change  the target branch of PR #2 change to `main`. At that\npoint, auto-queueing will switch on for PR #2 and it gets merged, etc.\n\n> [!IMPORTANT]\n> This component will never disable AutoMerge, only enable it. So if a PR is\n> initially targeted at one of the branches in this list, and then\n> subsequently retargeted to another branch, *AutoMerge is not\n> automatically turned off*.",
            "stability": "experimental",
            "summary": "The branch names that we should auto-queue for."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/auto-queue.ts",
            "line": 87
          },
          "name": "targetBranches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/auto-queue:AutoQueueOptions"
    },
    "projen.github.CheckoutOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.CheckoutOptions",
      "interfaces": [
        "projen.github.workflows.JobStepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 163
      },
      "name": "CheckoutOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for `checkout`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 167
          },
          "name": "with",
          "optional": true,
          "type": {
            "fqn": "projen.github.CheckoutWith"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:CheckoutOptions"
    },
    "projen.github.CheckoutWith": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `checkout`."
      },
      "fqn": "projen.github.CheckoutWith",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 173
      },
      "name": "CheckoutWith",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "1",
            "remarks": "0 indicates all history for all branches and tags.",
            "stability": "experimental",
            "summary": "Number of commits to fetch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 179
          },
          "name": "fetchDepth",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether LFS is enabled for the GitHub repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 185
          },
          "name": "lfs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- $GITHUB_WORKSPACE",
            "stability": "experimental",
            "summary": "Relative path under $GITHUB_WORKSPACE to place the repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 212
          },
          "name": "path",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the default branch is implicitly used",
            "stability": "experimental",
            "summary": "Branch or tag name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 191
          },
          "name": "ref",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the default repository is implicitly used",
            "stability": "experimental",
            "summary": "The repository (owner/repo) to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 197
          },
          "name": "repository",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the default GITHUB_TOKEN is implicitly used",
            "remarks": "If the intent is to push changes back to the branch, then you must use a\nPAT with `repo` (and possibly `workflows`) permissions.",
            "stability": "experimental",
            "summary": "A GitHub token to use when checking out the repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 206
          },
          "name": "token",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:CheckoutWith"
    },
    "projen.github.CheckoutWithPatchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `checkoutWithPatch`."
      },
      "fqn": "projen.github.CheckoutWithPatchOptions",
      "interfaces": [
        "projen.github.CheckoutWith"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-actions.ts",
        "line": 164
      },
      "name": "CheckoutWithPatchOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".repo.patch\"",
            "stability": "experimental",
            "summary": "The name of the artifact the patch is stored as."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 169
          },
          "name": "patchFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflow-actions:CheckoutWithPatchOptions"
    },
    "projen.github.ConcurrencyOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `concurrency`."
      },
      "fqn": "projen.github.ConcurrencyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows.ts",
        "line": 15
      },
      "name": "ConcurrencyOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "When a workflow is triggered while another one (in the same group) is running, should GitHub cancel the running workflow?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 33
          },
          "name": "cancelInProgress",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- ${{ github.workflow }}",
            "remarks": "For example, if you specify `${{ github.workflow }}-${{ github.ref }}`, workflow runs triggered\non the same branch cannot run concurrenty, but workflows runs triggered on different branches can.",
            "see": "https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/using-concurrency#example-concurrency-groups",
            "stability": "experimental",
            "summary": "Concurrency group controls which workflow runs will share the same concurrency limit."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 25
          },
          "name": "group",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows:ConcurrencyOptions"
    },
    "projen.github.ContributorStatementOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for requiring a contributor statement on Pull Requests."
      },
      "fqn": "projen.github.ContributorStatementOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/pull-request-lint.ts",
        "line": 78
      },
      "name": "ContributorStatementOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no labels are excluded",
            "stability": "experimental",
            "summary": "Pull requests with one of these labels are exempted from a contributor statement."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 88
          },
          "name": "exemptLabels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no users are exempted",
            "stability": "experimental",
            "summary": "Pull requests from these GitHub users are exempted from a contributor statement."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 83
          },
          "name": "exemptUsers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/pull-request-lint:ContributorStatementOptions"
    },
    "projen.github.CreatePullRequestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.CreatePullRequestOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-actions.ts",
        "line": 205
      },
      "name": "CreatePullRequestOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Providence information are automatically added.",
            "stability": "experimental",
            "summary": "Description added to the pull request."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 242
          },
          "name": "pullRequestDescription",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If PR titles are validated in this repo, the title should comply with the respective rules.",
            "stability": "experimental",
            "summary": "The full title used to create the pull request."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 235
          },
          "name": "pullRequestTitle",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the workflow that will create the PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 228
          },
          "name": "workflowName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no assignees",
            "stability": "experimental",
            "summary": "Assignees to add on the PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 283
          },
          "name": "assignees",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The branch checked out in the workflow.",
            "stability": "experimental",
            "summary": "Sets the pull request base branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 249
          },
          "name": "baseBranch",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "`github-actions/${options.workflowName}`",
            "stability": "experimental",
            "summary": "The pull request branch name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 256
          },
          "name": "branchName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Provided credentials must have permissions to create a pull request on the repository.",
            "stability": "experimental",
            "summary": "The job credentials used to create the pull request."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 223
          },
          "name": "credentials",
          "optional": true,
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the default github-actions user",
            "stability": "experimental",
            "summary": "The git identity used to create the commit."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 262
          },
          "name": "gitIdentity",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no labels.",
            "stability": "experimental",
            "summary": "Labels to apply on the PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 276
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Add Signed-off-by line by the committer at the end of the commit log message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 269
          },
          "name": "signoff",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"create_pr\"",
            "stability": "experimental",
            "summary": "The step ID which produces the output which indicates if a patch was created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 210
          },
          "name": "stepId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"Create Pull Request\"",
            "stability": "experimental",
            "summary": "The name of the step displayed on GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 216
          },
          "name": "stepName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflow-actions:CreatePullRequestOptions"
    },
    "projen.github.Dependabot": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Since module versions are managed in projen, the versioning strategy will be\nconfigured to \"lockfile-only\" which means that only updates that can be done\non the lockfile itself will be proposed.",
        "stability": "experimental",
        "summary": "Defines dependabot configuration for node projects."
      },
      "fqn": "projen.github.Dependabot",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/dependabot.ts",
          "line": 355
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.DependabotOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 340
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Allows a dependency from automatic updates."
          },
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 428
          },
          "name": "addAllow",
          "parameters": [
            {
              "docs": {
                "summary": "Use to allow updates for dependencies with matching names, optionally using `*` to match zero or more characters."
              },
              "name": "dependencyName",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Ignores a dependency from automatic updates."
          },
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 443
          },
          "name": "addIgnore",
          "parameters": [
            {
              "docs": {
                "summary": "Use to ignore updates for dependencies with matching names, optionally using `*` to match zero or more characters."
              },
              "name": "dependencyName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "If\nyou want to define a range, use the standard pattern for the package\nmanager (for example: `^1.0.0` for npm, or `~> 2.0` for Bundler).",
                "summary": "Use to ignore specific versions or ranges of versions."
              },
              "name": "versions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "Dependabot",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "see": "https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates",
            "stability": "experimental",
            "summary": "The raw dependabot configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 345
          },
          "name": "config",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whether or not projen is also upgraded in this config,."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 350
          },
          "name": "ignoresProjen",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/github/dependabot:Dependabot"
    },
    "projen.github.DependabotAllow": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "The allow option supports the following options.",
        "stability": "experimental",
        "summary": "You can use the `allow` option to customize which dependencies are updated."
      },
      "fqn": "projen.github.DependabotAllow",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 229
      },
      "name": "DependabotAllow",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "For Java dependencies, the format of the dependency-name attribute is:\n`groupId:artifactId`, for example: `org.kohsuke:github-api`.",
            "stability": "experimental",
            "summary": "Use to allow updates for dependencies with matching names, optionally using `*` to match zero or more characters."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 237
          },
          "name": "dependencyName",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/dependabot:DependabotAllow"
    },
    "projen.github.DependabotGroup": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Defines a single group for dependency updates."
      },
      "fqn": "projen.github.DependabotGroup",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 265
      },
      "name": "DependabotGroup",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Define a list of strings (with or without wildcards) that will match package names to form this dependency group."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 270
          },
          "name": "patterns",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Optionally you can use this to exclude certain dependencies from the group."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 276
          },
          "name": "excludePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/dependabot:DependabotGroup"
    },
    "projen.github.DependabotIgnore": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "The ignore option supports the following options.",
        "stability": "experimental",
        "summary": "You can use the `ignore` option to customize which dependencies are updated."
      },
      "fqn": "projen.github.DependabotIgnore",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 244
      },
      "name": "DependabotIgnore",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "For Java dependencies, the format of the dependency-name attribute is:\n`groupId:artifactId`, for example: `org.kohsuke:github-api`.",
            "stability": "experimental",
            "summary": "Use to ignore updates for dependencies with matching names, optionally using `*` to match zero or more characters."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 252
          },
          "name": "dependencyName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If you want to\ndefine a range, use the standard pattern for the package manager (for\nexample: `^1.0.0` for npm, or `~> 2.0` for Bundler).",
            "stability": "experimental",
            "summary": "Use to ignore specific versions or ranges of versions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 259
          },
          "name": "versions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/dependabot:DependabotIgnore"
    },
    "projen.github.DependabotOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.DependabotOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 6
      },
      "name": "DependabotOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Use the allow option to customize which dependencies are updated. This\napplies to both version and security updates.",
            "stability": "experimental",
            "summary": "https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#allow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 31
          },
          "name": "allow",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.DependabotAllow"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Specify individual assignees or teams of assignees for all pull requests raised for a package manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 77
          },
          "name": "assignees",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "You can create groups to package dependency updates together into a single PR.",
            "stability": "experimental",
            "summary": "https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 93
          },
          "name": "groups",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.DependabotGroup"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "The ignore option supports the following options.",
            "stability": "experimental",
            "summary": "You can use the `ignore` option to customize which dependencies are updated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 38
          },
          "name": "ignore",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.DependabotIgnore"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This is required since projen updates may cause changes in committed files\nand anti-tamper checks will fail.\n\nProjen upgrades are covered through the `ProjenUpgrade` class.",
            "stability": "experimental",
            "summary": "Ignores updates to `projen`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 50
          },
          "name": "ignoreProjen",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "List of labels to apply to the created PR's."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 55
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "5",
            "remarks": "Dependabot will not open any new requests until some of those open requests\nare merged or closed.",
            "stability": "experimental",
            "summary": "Sets the maximum of pull requests Dependabot opens for version updates."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 70
          },
          "name": "openPullRequestsLimit",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- use public registries",
            "stability": "experimental",
            "summary": "Map of package registries to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 61
          },
          "name": "registries",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.DependabotRegistry"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Specify individual reviewers or teams of reviewers for all pull requests raised for a package manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 84
          },
          "name": "reviewers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "ScheduleInterval.DAILY",
            "stability": "experimental",
            "summary": "How often to check for new versions and raise pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 12
          },
          "name": "scheduleInterval",
          "optional": true,
          "type": {
            "fqn": "projen.github.DependabotScheduleInterval"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#target-branch You can configure the target branch for raising pull requests for version updates against."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 99
          },
          "name": "targetBranch",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "VersioningStrategy.LOCKFILE_ONLY The default is to only update the\nlock file because package.json is controlled by projen and any outside\nupdates will fail the build.",
            "stability": "experimental",
            "summary": "The strategy to use when edits manifest and lock files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 21
          },
          "name": "versioningStrategy",
          "optional": true,
          "type": {
            "fqn": "projen.github.VersioningStrategy"
          }
        }
      ],
      "symbolId": "src/github/dependabot:DependabotOptions"
    },
    "projen.github.DependabotRegistry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#configuration-options-for-private-registries",
        "stability": "experimental",
        "summary": "Use to add private registry support for dependabot."
      },
      "fqn": "projen.github.DependabotRegistry",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 106
      },
      "name": "DependabotRegistry",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Registry type e.g. 'npm-registry' or 'docker-registry'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 110
          },
          "name": "type",
          "type": {
            "fqn": "projen.github.DependabotRegistryType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Url for the registry e.g. 'https://npm.pkg.github.com' or 'registry.hub.docker.com'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 115
          },
          "name": "url",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "A reference to a Dependabot secret containing an access key for this registry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 133
          },
          "name": "key",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#hex-organization",
            "stability": "experimental",
            "summary": "Used with the hex-organization registry type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 154
          },
          "name": "organization",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "A reference to a Dependabot secret containing the password for the specified user."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 127
          },
          "name": "password",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "For registries with type: python-index, if the boolean value is true, pip esolves dependencies by using the specified URL rather than the base URL of the Python Package Index (by default https://pypi.org/simple)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 147
          },
          "name": "replacesBase",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Secret token for dependabot access e.g. '${{ secrets.DEPENDABOT_PACKAGE_TOKEN }}'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 139
          },
          "name": "token",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- do not authenticate",
            "stability": "experimental",
            "summary": "The username that Dependabot uses to access the registry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/dependabot.ts",
            "line": 121
          },
          "name": "username",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/dependabot:DependabotRegistry"
    },
    "projen.github.DependabotRegistryType": {
      "assembly": "projen",
      "docs": {
        "remarks": "Some types allow more than one way to connect",
        "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#configuration-options-for-private-registries",
        "stability": "experimental",
        "summary": "Each configuration type requires you to provide particular settings."
      },
      "fqn": "projen.github.DependabotRegistryType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 162
      },
      "members": [
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#composer-repository",
            "stability": "experimental",
            "summary": "The composer-repository type supports username and password."
          },
          "name": "COMPOSER_REGISTRY"
        },
        {
          "docs": {
            "remarks": "The docker-registry type can also be used to pull from Amazon ECR using static AWS credentials",
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#docker-registry",
            "stability": "experimental",
            "summary": "The docker-registry type supports username and password."
          },
          "name": "DOCKER_REGISTRY"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#git",
            "stability": "experimental",
            "summary": "The git type supports username and password."
          },
          "name": "GIT"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#hex-organization",
            "stability": "experimental",
            "summary": "The hex-organization type supports organization and key."
          },
          "name": "HEX_ORGANIZATION"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#maven-repository",
            "stability": "experimental",
            "summary": "The maven-repository type supports username and password, or token."
          },
          "name": "MAVEN_REPOSITORY"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#npm-registry",
            "stability": "experimental",
            "summary": "The npm-registry type supports username and password, or token."
          },
          "name": "NPM_REGISTRY"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#nuget-feed",
            "stability": "experimental",
            "summary": "The nuget-feed type supports username and password, or token."
          },
          "name": "NUGET_FEED"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#python-index",
            "stability": "experimental",
            "summary": "The python-index type supports username and password, or token."
          },
          "name": "PYTHON_INDEX"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#rubygems-server",
            "stability": "experimental",
            "summary": "The rubygems-server type supports username and password, or token."
          },
          "name": "RUBYGEMS_SERVER"
        },
        {
          "docs": {
            "see": "https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#terraform-registry",
            "stability": "experimental",
            "summary": "The terraform-registry type supports a token."
          },
          "name": "TERRAFORM_REGISTRY"
        }
      ],
      "name": "DependabotRegistryType",
      "namespace": "github",
      "symbolId": "src/github/dependabot:DependabotRegistryType"
    },
    "projen.github.DependabotScheduleInterval": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "How often to check for new versions and raise pull requests for version updates."
      },
      "fqn": "projen.github.DependabotScheduleInterval",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 283
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Runs on every weekday, Monday to Friday."
          },
          "name": "DAILY"
        },
        {
          "docs": {
            "remarks": "By default, this is on Monday.",
            "stability": "experimental",
            "summary": "Runs once each week."
          },
          "name": "WEEKLY"
        },
        {
          "docs": {
            "remarks": "This is on the first day of the month.",
            "stability": "experimental",
            "summary": "Runs once each month."
          },
          "name": "MONTHLY"
        }
      ],
      "name": "DependabotScheduleInterval",
      "namespace": "github",
      "symbolId": "src/github/dependabot:DependabotScheduleInterval"
    },
    "projen.github.DownloadArtifactOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.DownloadArtifactOptions",
      "interfaces": [
        "projen.github.workflows.JobStepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 347
      },
      "name": "DownloadArtifactOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for `download-artifact`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 351
          },
          "name": "with",
          "type": {
            "fqn": "projen.github.DownloadArtifactWith"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:DownloadArtifactOptions"
    },
    "projen.github.DownloadArtifactWith": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.DownloadArtifactWith",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 293
      },
      "name": "DownloadArtifactWith",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "When multiple artifacts are matched, this changes the behavior of the destination directories If true, the downloaded artifacts will be in the same directory specified by path If false, the downloaded artifacts will be extracted into individual named directories within the specified path."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 321
          },
          "name": "mergeMultiple",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- If unspecified, all artifacts for the run are downloaded",
            "stability": "experimental",
            "summary": "Name of the artifact to download."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 299
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- $GITHUB_WORKSPACE",
            "remarks": "Supports basic tilde expansion.",
            "stability": "experimental",
            "summary": "A file, directory or wildcard pattern that describes what to download."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 306
          },
          "name": "path",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A glob pattern to the artifacts that should be downloaded This is ignored if name is specified."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 312
          },
          "name": "pattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- ${{ github.repository }}",
            "stability": "experimental",
            "summary": "The repository owner and the repository name joined together by \"/\" If github-token is specified, this is the repository that artifacts will be downloaded from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 336
          },
          "name": "repository",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- ${{ github.run_id }}",
            "stability": "experimental",
            "summary": "The id of the workflow run where the desired download artifact was uploaded from If github-token is specified, this is the run that artifacts will be downloaded from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 344
          },
          "name": "runId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- If unspecified, the action will download artifacts from the current repo and the current workflow run",
            "stability": "experimental",
            "summary": "The GitHub token used to authenticate with the GitHub API to download artifacts from a different repository or from a different workflow run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 328
          },
          "name": "token",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:DownloadArtifactWith"
    },
    "projen.github.GitHub": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.GitHub",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/github.ts",
          "line": 150
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.GitHubOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/github.ts",
        "line": 111
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns the `GitHub` component of a project or `undefined` if the project does not have a GitHub component."
          },
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 116
          },
          "name": "of",
          "parameters": [
            {
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 224
          },
          "name": "addDependabot",
          "parameters": [
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.github.DependabotOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.Dependabot"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 220
          },
          "name": "addPullRequestTemplate",
          "parameters": [
            {
              "name": "content",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.PullRequestTemplate"
            }
          },
          "variadic": true
        },
        {
          "docs": {
            "returns": "a GithubWorkflow instance",
            "stability": "experimental",
            "summary": "Adds a workflow to the project."
          },
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 215
          },
          "name": "addWorkflow",
          "parameters": [
            {
              "docs": {
                "summary": "Name of the workflow."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.GithubWorkflow"
            }
          }
        },
        {
          "docs": {
            "remarks": "Returns `undefined` if the workflow cannot be found.",
            "stability": "experimental",
            "summary": "Finds a GitHub workflow by name."
          },
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 232
          },
          "name": "tryFindWorkflow",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the GitHub workflow."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.github.GithubWorkflow"
            }
          }
        }
      ],
      "name": "GitHub",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The GitHub Actions provider used to manage the versions of actions used in steps."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 146
          },
          "name": "actions",
          "type": {
            "fqn": "projen.github.GitHubActionsProvider"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whether downloading from LFS is enabled for this GitHub project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 239
          },
          "name": "downloadLfs",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "GitHub API authentication method used by projen workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 141
          },
          "name": "projenCredentials",
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "All workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 202
          },
          "name": "workflows",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.GithubWorkflow"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Are workflows enabled?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 136
          },
          "name": "workflowsEnabled",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The `MergeQueue` component configured on this repository This is `undefined` if merge queues are not enabled for this repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 131
          },
          "name": "mergeQueue",
          "optional": true,
          "type": {
            "fqn": "projen.github.MergeQueue"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The `Mergify` component configured on this repository This is `undefined` if Mergify is not enabled for this repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 125
          },
          "name": "mergify",
          "optional": true,
          "type": {
            "fqn": "projen.github.Mergify"
          }
        }
      ],
      "symbolId": "src/github/github:GitHub"
    },
    "projen.github.GitHubActionsProvider": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Manage the versions used for GitHub Actions used in steps."
      },
      "fqn": "projen.github.GitHubActionsProvider",
      "initializer": {
        "docs": {
          "stability": "experimental"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/actions-provider.ts",
        "line": 4
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Resolve an action name to the version that should be used, taking into account any overrides."
          },
          "locationInModule": {
            "filename": "src/github/actions-provider.ts",
            "line": 31
          },
          "name": "get",
          "parameters": [
            {
              "name": "action",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "example": "// Force any use of `actions/checkout` to use a pin a specific commit\nproject.github.actions.set(\"actions/checkout\", \"actions/checkout@aaaaaa\");\n\n// But pin usage of `v4` to a different commit\nproject.github.actions.set(\"actions/checkout@v4\", \"actions/checkout@ffffff\");",
            "remarks": "Specify the action name without a version to override all usages of the action.\nYou can also override a specific action version, by providing the version string.\nSpecific overrides take precedence over overrides without a version.\n\nIf an override for the same action name is set multiple times, the last override is used.",
            "stability": "experimental",
            "summary": "Define an override for a given action."
          },
          "locationInModule": {
            "filename": "src/github/actions-provider.ts",
            "line": 23
          },
          "name": "set",
          "parameters": [
            {
              "name": "action",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "override",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "GitHubActionsProvider",
      "namespace": "github",
      "symbolId": "src/github/actions-provider:GitHubActionsProvider"
    },
    "projen.github.GitHubOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.GitHubOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/github.ts",
        "line": 16
      },
      "name": "GitHubOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true if the associated project has `lfsPatterns`, `false` otherwise",
            "stability": "experimental",
            "summary": "Download files in LFS in workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 108
          },
          "name": "downloadLfs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Requires additional configuration of the repositories branch protection rules.",
            "stability": "experimental",
            "summary": "Whether a merge queue should be used on this repository to merge pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 37
          },
          "name": "mergeQueue",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for MergeQueue."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 44
          },
          "name": "mergeQueueOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.MergeQueueOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Whether mergify should be enabled on this repository or not."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 22
          },
          "name": "mergify",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for Mergify."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 29
          },
          "name": "mergifyOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.MergifyOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- use a personal access token named PROJEN_GITHUB_TOKEN",
            "stability": "experimental",
            "summary": "Choose a method of providing GitHub API access for projen workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 91
          },
          "name": "projenCredentials",
          "optional": true,
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"PROJEN_GITHUB_TOKEN\"",
            "deprecated": "- use `projenCredentials`",
            "remarks": "This token needs to have the `repo`, `workflows`\nand `packages` scope.",
            "stability": "deprecated",
            "summary": "The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 101
          },
          "name": "projenTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "When opening a new PR add a backport label to it,\nand the PR will be backported to the target branches once the PR is merged.\n\nShould not be used together with mergify.",
            "stability": "experimental",
            "summary": "Add a workflow that allows backport of PRs to other branches using labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 62
          },
          "name": "pullRequestBackport",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- see defaults in `PullRequestBackportOptions`",
            "stability": "experimental",
            "summary": "Options for configuring pull request backport."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 69
          },
          "name": "pullRequestBackportOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.PullRequestBackportOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Add a workflow that performs basic checks for pull requests, like validating that PRs follow Conventional Commits."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 77
          },
          "name": "pullRequestLint",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- see defaults in `PullRequestLintOptions`",
            "stability": "experimental",
            "summary": "Options for configuring a pull request linter."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 84
          },
          "name": "pullRequestLintOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.PullRequestLintOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "If this is set to `false`, workflows will not be created.",
            "stability": "experimental",
            "summary": "Enables GitHub workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github.ts",
            "line": 51
          },
          "name": "workflows",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/github/github:GitHubOptions"
    },
    "projen.github.GitHubProject": {
      "assembly": "projen",
      "base": "projen.Project",
      "docs": {
        "deprecated": "This is a *temporary* class. At the moment, our base project\ntypes such as `NodeProject` and `JavaProject` are derived from this, but we\nwant to be able to use these project types outside of GitHub as well. One of\nthe next steps to address this is to abstract workflows so that different\n\"engines\" can be used to implement our CI/CD solutions.",
        "stability": "deprecated",
        "summary": "GitHub-based project."
      },
      "fqn": "projen.github.GitHubProject",
      "initializer": {
        "docs": {
          "stability": "deprecated"
        },
        "locationInModule": {
          "filename": "src/github/github-project.ts",
          "line": 196
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.github.GitHubProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/github-project.ts",
        "line": 155
      },
      "methods": [
        {
          "docs": {
            "remarks": "This is achieved using the\ngithub-linguist attributes. Generated files do not count against the\nrepository statistics and language breakdown.",
            "see": "https://github.com/github/linguist/blob/master/docs/overrides.md",
            "stability": "deprecated",
            "summary": "Marks the provided file(s) as being generated."
          },
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 248
          },
          "name": "annotateGenerated",
          "overrides": "projen.Project",
          "parameters": [
            {
              "docs": {
                "summary": "the glob pattern to match (could be a file path)."
              },
              "name": "glob",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "GitHubProject",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 189
          },
          "name": "projectType",
          "type": {
            "fqn": "projen.ProjectType"
          }
        },
        {
          "docs": {
            "stability": "deprecated",
            "summary": "Auto approve set up for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 194
          },
          "name": "autoApprove",
          "optional": true,
          "type": {
            "fqn": "projen.github.AutoApprove"
          }
        },
        {
          "docs": {
            "remarks": "This will be `undefined` if devContainer boolean is false",
            "stability": "deprecated",
            "summary": "Access for .devcontainer.json (used for GitHub Codespaces)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 182
          },
          "name": "devContainer",
          "optional": true,
          "type": {
            "fqn": "projen.vscode.DevContainer"
          }
        },
        {
          "docs": {
            "remarks": "This will be `undefined` for subprojects.",
            "stability": "deprecated",
            "summary": "Access all github components."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 161
          },
          "name": "github",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitHub"
          }
        },
        {
          "docs": {
            "remarks": "This will be `undefined` if gitpod boolean is false",
            "stability": "deprecated",
            "summary": "Access for Gitpod."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 175
          },
          "name": "gitpod",
          "optional": true,
          "type": {
            "fqn": "projen.Gitpod"
          }
        },
        {
          "docs": {
            "remarks": "This will be `undefined` for subprojects.",
            "stability": "deprecated",
            "summary": "Access all VSCode components."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 168
          },
          "name": "vscode",
          "optional": true,
          "type": {
            "fqn": "projen.vscode.VsCode"
          }
        }
      ],
      "symbolId": "src/github/github-project:GitHubProject"
    },
    "projen.github.GitHubProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `GitHubProject`."
      },
      "fqn": "projen.github.GitHubProjectOptions",
      "interfaces": [
        "projen.ProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/github-project.ts",
        "line": 16
      },
      "name": "GitHubProjectOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- auto approve is disabled",
            "stability": "experimental",
            "summary": "Enable and configure the 'auto approve' workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 97
          },
          "name": "autoApproveOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.AutoApproveOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Has no effect if `github.mergify`\nis set to false.",
            "stability": "experimental",
            "summary": "Enable automatic merging on GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 104
          },
          "name": "autoMerge",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- see defaults in `AutoMergeOptions`",
            "remarks": "Has no effect if\n`github.mergify` or `autoMerge` is set to false.",
            "stability": "experimental",
            "summary": "Configure options for automatic merging on GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 112
          },
          "name": "autoMergeOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.AutoMergeOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true, but false for subprojects",
            "stability": "experimental",
            "summary": "Add a `clobber` task which resets the repo to origin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 76
          },
          "name": "clobber",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Add a VSCode development environment (used for GitHub Codespaces)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 70
          },
          "name": "devContainer",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Enabled by default for root projects. Disabled for non-root projects.",
            "stability": "experimental",
            "summary": "Enable GitHub integration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 40
          },
          "name": "github",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- see GitHubOptions",
            "stability": "experimental",
            "summary": "Options for GitHub integration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 47
          },
          "name": "githubOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitHubOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Add a Gitpod development environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 22
          },
          "name": "gitpod",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "use `githubOptions.mergify` instead",
            "stability": "deprecated",
            "summary": "Whether mergify should be enabled on this repository or not."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 55
          },
          "name": "mergify",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "deprecated": "use `githubOptions.mergifyOptions` instead",
            "stability": "deprecated",
            "summary": "Options for mergify."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 63
          },
          "name": "mergifyOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.MergifyOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "ProjectType.UNKNOWN",
            "deprecated": "no longer supported at the base project level",
            "stability": "deprecated",
            "summary": "Which type of project this is (library/app)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 91
          },
          "name": "projectType",
          "optional": true,
          "type": {
            "fqn": "projen.ProjectType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- use a personal access token named PROJEN_GITHUB_TOKEN",
            "stability": "experimental",
            "summary": "Choose a method of providing GitHub API access for projen workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 133
          },
          "name": "projenCredentials",
          "optional": true,
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"PROJEN_GITHUB_TOKEN\"",
            "deprecated": "use `projenCredentials`",
            "remarks": "This token needs to have the `repo`, `workflows`\nand `packages` scope.",
            "stability": "deprecated",
            "summary": "The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 143
          },
          "name": "projenTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- { filename: 'README.md', contents: '# replace this' }",
            "example": "\"{ filename: 'readme.md', contents: '# title' }\"",
            "stability": "experimental",
            "summary": "The README setup."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 84
          },
          "name": "readme",
          "optional": true,
          "type": {
            "fqn": "projen.SampleReadmeProps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "See `staleOptions` for options.",
            "stability": "experimental",
            "summary": "Auto-close of stale issues and pull request."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 126
          },
          "name": "stale",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- see defaults in `StaleOptions`",
            "remarks": "To disable set `stale` to `false`.",
            "stability": "experimental",
            "summary": "Auto-close stale issues and pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 119
          },
          "name": "staleOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.StaleOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Enabled by default for root projects. Disabled for non-root projects.",
            "stability": "experimental",
            "summary": "Enable VSCode integration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-project.ts",
            "line": 31
          },
          "name": "vscode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/github/github-project:GitHubProjectOptions"
    },
    "projen.github.GitIdentity": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Represents the git identity."
      },
      "fqn": "projen.github.GitIdentity",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/task-workflow.ts",
        "line": 76
      },
      "name": "GitIdentity",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The email address of the git user."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 85
          },
          "name": "email",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the user."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 80
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/task-workflow:GitIdentity"
    },
    "projen.github.GithubCredentials": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a method of providing GitHub API access for projen workflows."
      },
      "fqn": "projen.github.GithubCredentials",
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/github-credentials.ts",
        "line": 28
      },
      "methods": [
        {
          "docs": {
            "default": "- app id stored in \"PROJEN_APP_ID\" and private key stored in \"PROJEN_APP_PRIVATE_KEY\" with all permissions attached to the app",
            "remarks": "The GitHub App must be installed on the GitHub repo, its App ID and a\nprivate key must be added as secrets to the repo. The name of the secrets\ncan be specified here.",
            "see": "https://projen.io/docs/integrations/github/#github-app",
            "stability": "experimental",
            "summary": "Provide API access through a GitHub App."
          },
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 58
          },
          "name": "fromApp",
          "parameters": [
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.github.GithubCredentialsAppOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.GithubCredentials"
            }
          },
          "static": true
        },
        {
          "docs": {
            "default": "- a secret named \"PROJEN_GITHUB_TOKEN\"",
            "remarks": "The token must be added as a secret to the GitHub repo, and the name of the\nsecret can be specified here.",
            "see": "https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token",
            "stability": "experimental",
            "summary": "Provide API access through a GitHub personal access token."
          },
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 38
          },
          "name": "fromPersonalAccessToken",
          "parameters": [
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.github.GithubCredentialsPersonalAccessTokenOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.GithubCredentials"
            }
          },
          "static": true
        }
      ],
      "name": "GithubCredentials",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Setup steps to obtain GitHub credentials."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 87
          },
          "name": "setupSteps",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "This\ntypically looks like \"${{ some.path.to.a.value }}\".",
            "stability": "experimental",
            "summary": "The value to use in a workflow when a GitHub token is expected."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 95
          },
          "name": "tokenRef",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/github-credentials:GithubCredentials"
    },
    "projen.github.GithubCredentialsAppOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `GithubCredentials.fromApp`."
      },
      "fqn": "projen.github.GithubCredentialsAppOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/github-credentials.ts",
        "line": 14
      },
      "name": "GithubCredentialsAppOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 15
          },
          "name": "appIdSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- all permissions granted to the app",
            "stability": "experimental",
            "summary": "The permissions granted to the token."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 22
          },
          "name": "permissions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermissions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 16
          },
          "name": "privateKeySecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/github-credentials:GithubCredentialsAppOptions"
    },
    "projen.github.GithubCredentialsPersonalAccessTokenOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `GithubCredentials.fromPersonalAccessToken`."
      },
      "fqn": "projen.github.GithubCredentialsPersonalAccessTokenOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/github-credentials.ts",
        "line": 7
      },
      "name": "GithubCredentialsPersonalAccessTokenOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/github-credentials.ts",
            "line": 8
          },
          "name": "secret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/github-credentials:GithubCredentialsPersonalAccessTokenOptions"
    },
    "projen.github.GithubWorkflow": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "A workflow is a configurable automated process made up of one or more jobs.",
        "see": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions",
        "stability": "experimental",
        "summary": "Workflow for GitHub."
      },
      "fqn": "projen.github.GithubWorkflow",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/workflows.ts",
          "line": 143
        },
        "parameters": [
          {
            "docs": {
              "summary": "The GitHub component of the project this workflow belongs to."
            },
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "docs": {
              "summary": "The name of the workflow, displayed under the repository's \"Actions\" tab."
            },
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "Additional options to configure the workflow."
            },
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.GithubWorkflowOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/workflows.ts",
        "line": 90
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a single job to the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 204
          },
          "name": "addJob",
          "parameters": [
            {
              "docs": {
                "summary": "The job name (unique within the workflow)."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The job specification."
              },
              "name": "job",
              "type": {
                "union": {
                  "types": [
                    {
                      "fqn": "projen.github.workflows.JobCallingReusableWorkflow"
                    },
                    {
                      "fqn": "projen.github.workflows.Job"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add jobs to the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 216
          },
          "name": "addJobs",
          "parameters": [
            {
              "docs": {
                "summary": "Jobs to add."
              },
              "name": "jobs",
              "type": {
                "collection": {
                  "elementtype": {
                    "union": {
                      "types": [
                        {
                          "fqn": "projen.github.workflows.JobCallingReusableWorkflow"
                        },
                        {
                          "fqn": "projen.github.workflows.Job"
                        }
                      ]
                    }
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Get a single job from the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 231
          },
          "name": "getJob",
          "parameters": [
            {
              "docs": {
                "summary": "The job name (unique within the workflow)."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "union": {
                "types": [
                  {
                    "fqn": "projen.github.workflows.JobCallingReusableWorkflow"
                  },
                  {
                    "fqn": "projen.github.workflows.Job"
                  }
                ]
              }
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add events to triggers the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 192
          },
          "name": "on",
          "parameters": [
            {
              "docs": {
                "summary": "The event(s) to trigger the workflow."
              },
              "name": "events",
              "type": {
                "fqn": "projen.github.workflows.Triggers"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Removes a single job to the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 275
          },
          "name": "removeJob",
          "parameters": [
            {
              "docs": {
                "summary": "The job name (unique within the workflow)."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Updates a single job to the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 241
          },
          "name": "updateJob",
          "parameters": [
            {
              "docs": {
                "summary": "The job name (unique within the workflow)."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "job",
              "type": {
                "union": {
                  "types": [
                    {
                      "fqn": "projen.github.workflows.JobCallingReusableWorkflow"
                    },
                    {
                      "fqn": "projen.github.workflows.Job"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Updates jobs for this worklow Does a complete replace, it does not try to merge the jobs."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 254
          },
          "name": "updateJobs",
          "parameters": [
            {
              "docs": {
                "summary": "Jobs to update."
              },
              "name": "jobs",
              "type": {
                "collection": {
                  "elementtype": {
                    "union": {
                      "types": [
                        {
                          "fqn": "projen.github.workflows.JobCallingReusableWorkflow"
                        },
                        {
                          "fqn": "projen.github.workflows.Job"
                        }
                      ]
                    }
                  },
                  "kind": "map"
                }
              }
            }
          ]
        }
      ],
      "name": "GithubWorkflow",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "remarks": "GitHub displays the names of your workflows under your repository's\n\"Actions\" tab.",
            "see": "https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#name",
            "stability": "experimental",
            "summary": "The name of the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 96
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "GitHub API authentication method used by projen workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 116
          },
          "name": "projenCredentials",
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "docs": {
            "remarks": "undefined means no concurrency limitations.",
            "stability": "experimental",
            "summary": "The concurrency configuration of the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 101
          },
          "name": "concurrency",
          "optional": true,
          "type": {
            "fqn": "projen.github.ConcurrencyOptions"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Additional environment variables to set for the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 106
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "remarks": "May not exist if `workflowsEnabled` is false on `GitHub`.",
            "stability": "experimental",
            "summary": "The workflow YAML file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 111
          },
          "name": "file",
          "optional": true,
          "type": {
            "fqn": "projen.YamlFile"
          }
        },
        {
          "docs": {
            "remarks": "GitHub displays the\nworkflow run name in the list of workflow runs on your repository's\n\"Actions\" tab. If `run-name` is omitted or is only whitespace, then the run\nname is set to event-specific information for the workflow run. For\nexample, for a workflow triggered by a `push` or `pull_request` event, it\nis set as the commit message.\n\nThis value can include expressions and can reference `github` and `inputs`\ncontexts.",
            "stability": "experimental",
            "summary": "The name for workflow runs generated from the workflow."
          },
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 129
          },
          "name": "runName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows:GithubWorkflow"
    },
    "projen.github.GithubWorkflowOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `GithubWorkflow`."
      },
      "fqn": "projen.github.GithubWorkflowOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows.ts",
        "line": 39
      },
      "name": "GithubWorkflowOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- { group: ${{ github.workflow }}, cancelInProgress: false }",
            "remarks": "Currently in beta.",
            "see": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#concurrency",
            "stability": "experimental",
            "summary": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 61
          },
          "name": "concurrencyOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.ConcurrencyOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional environment variables",
            "stability": "experimental",
            "summary": "Additional environment variables to set for the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 68
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- a path-safe version of the workflow name plus the .yml file ending, e.g. build.yml",
            "example": "\"my-workflow.yaml\"",
            "remarks": "Use this option to set a file name for the workflow file, that is different than the display name.",
            "stability": "experimental",
            "summary": "Set a custom file name for the workflow definition file. Must include either a .yml or .yaml file extension."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 80
          },
          "name": "fileName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Force the creation of the workflow even if `workflows` is disabled in `GitHub`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 45
          },
          "name": "force",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Use `concurrencyOptions` to configure specific non default values.",
            "stability": "experimental",
            "summary": "Enable concurrency limitations."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows.ts",
            "line": 52
          },
          "name": "limitConcurrency",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/github/workflows:GithubWorkflowOptions"
    },
    "projen.github.IAddConditionsLater": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.IAddConditionsLater",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/auto-merge.ts",
        "line": 129
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/github/auto-merge.ts",
            "line": 130
          },
          "name": "render",
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          }
        }
      ],
      "name": "IAddConditionsLater",
      "namespace": "github",
      "symbolId": "src/github/auto-merge:IAddConditionsLater"
    },
    "projen.github.MergeMethod": {
      "assembly": "projen",
      "docs": {
        "remarks": "Behavior can be further configured in repository settings.",
        "stability": "experimental",
        "summary": "The merge method used to add the PR to the merge queue."
      },
      "fqn": "projen.github.MergeMethod",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/github/auto-queue.ts",
        "line": 10
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "SQUASH"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "MERGE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "REBASE"
        }
      ],
      "name": "MergeMethod",
      "namespace": "github",
      "symbolId": "src/github/auto-queue:MergeMethod"
    },
    "projen.github.MergeQueue": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Merge pull requests using a merge queue."
      },
      "fqn": "projen.github.MergeQueue",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/merge-queue.ts",
          "line": 36
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.MergeQueueOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/merge-queue.ts",
        "line": 35
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/github/merge-queue.ts",
            "line": 90
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "MergeQueue",
      "namespace": "github",
      "symbolId": "src/github/merge-queue:MergeQueue"
    },
    "projen.github.MergeQueueOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for 'MergeQueue'."
      },
      "fqn": "projen.github.MergeQueueOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/merge-queue.ts",
        "line": 11
      },
      "name": "MergeQueueOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Should pull requests be queued automatically to be merged once they pass required checks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/merge-queue.ts",
            "line": 16
          },
          "name": "autoQueue",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- see AutoQueueOptions",
            "stability": "experimental",
            "summary": "Configure auto-queue pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/merge-queue.ts",
            "line": 22
          },
          "name": "autoQueueOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.AutoQueueOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- all branches",
            "stability": "experimental",
            "summary": "The branches that can be merged into using MergeQueue."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/merge-queue.ts",
            "line": 29
          },
          "name": "targetBranches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/merge-queue:MergeQueueOptions"
    },
    "projen.github.Mergify": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.Mergify",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/mergify.ts",
          "line": 93
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.MergifyOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/mergify.ts",
        "line": 87
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 123
          },
          "name": "addQueue",
          "parameters": [
            {
              "name": "queue",
              "type": {
                "fqn": "projen.github.MergifyQueue"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 118
          },
          "name": "addRule",
          "parameters": [
            {
              "name": "rule",
              "type": {
                "fqn": "projen.github.MergifyRule"
              }
            }
          ]
        }
      ],
      "name": "Mergify",
      "namespace": "github",
      "symbolId": "src/github/mergify:Mergify"
    },
    "projen.github.MergifyConditionalOperator": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Note: The number of nested conditions is limited to 3.",
        "see": "https://docs.mergify.io/conditions/#combining-conditions-with-operators",
        "stability": "experimental",
        "summary": "The Mergify conditional operators that can be used are: `or` and `and`."
      },
      "fqn": "projen.github.MergifyConditionalOperator",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/mergify.ts",
        "line": 11
      },
      "name": "MergifyConditionalOperator",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 13
          },
          "name": "and",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "fqn": "projen.github.MergifyConditionalOperator"
                    }
                  ]
                }
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 12
          },
          "name": "or",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "fqn": "projen.github.MergifyConditionalOperator"
                    }
                  ]
                }
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/mergify:MergifyConditionalOperator"
    },
    "projen.github.MergifyOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.MergifyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/mergify.ts",
        "line": 82
      },
      "name": "MergifyOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 84
          },
          "name": "queues",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.MergifyQueue"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 83
          },
          "name": "rules",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.MergifyRule"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/mergify:MergifyOptions"
    },
    "projen.github.MergifyQueue": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.MergifyQueue",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/mergify.ts",
        "line": 38
      },
      "name": "MergifyQueue",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Template to use as the commit message when using the merge or squash merge method."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 79
          },
          "name": "commitMessageTemplate",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://docs.mergify.com/conditions/#conditions",
            "stability": "experimental",
            "summary": "A list of Conditions string that must match against the pull request for the pull request to be added to the queue."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 74
          },
          "name": "conditions",
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "fqn": "projen.github.MergifyConditionalOperator"
                    }
                  ]
                }
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the queue."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 42
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"merge\"",
            "remarks": "Possible values are `merge`, `squash`, `rebase` or `fast-forward`.\n`fast-forward` is not supported on queues with `speculative_checks` > 1, `batch_size` > 1, or with `allow_inplace_checks` set to false.",
            "stability": "experimental",
            "summary": "Merge method to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 52
          },
          "name": "mergeMethod",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- `merge` for all merge methods except `fast-forward` where `rebase` is used",
            "remarks": "Possible values:\n - `merge` to merge the base branch into the pull request.\n - `rebase` to rebase the pull request against its base branch.\n\nNote that the `rebase` method has some drawbacks, see Mergify docs for details.",
            "see": "https://docs.mergify.com/actions/queue/#queue-rules",
            "stability": "experimental",
            "summary": "Method to use to update the pull request with its base branch when the speculative check is done in-place."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 67
          },
          "name": "updateMethod",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/mergify:MergifyQueue"
    },
    "projen.github.MergifyRule": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.MergifyRule",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/mergify.ts",
        "line": 18
      },
      "name": "MergifyRule",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "https://docs.mergify.io/actions/#actions",
            "stability": "experimental",
            "summary": "A dictionary made of Actions that will be executed on the matching pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 35
          },
          "name": "actions",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://docs.mergify.io/conditions/#conditions",
            "stability": "experimental",
            "summary": "A list of Conditions string that must match against the pull request for the rule to be applied."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 29
          },
          "name": "conditions",
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "fqn": "projen.github.MergifyConditionalOperator"
                    }
                  ]
                }
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This is not used by the engine directly,\nbut is used when reporting information about a rule.",
            "stability": "experimental",
            "summary": "The name of the rule."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/mergify.ts",
            "line": 23
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/mergify:MergifyRule"
    },
    "projen.github.PullRequestBackport": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.PullRequestBackport",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/pull-request-backport.ts",
          "line": 69
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.PullRequestBackportOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/pull-request-backport.ts",
        "line": 65
      },
      "name": "PullRequestBackport",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 66
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 67
          },
          "name": "workflow",
          "type": {
            "fqn": "projen.github.GithubWorkflow"
          }
        }
      ],
      "symbolId": "src/github/pull-request-backport:PullRequestBackport"
    },
    "projen.github.PullRequestBackportOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.PullRequestBackportOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/pull-request-backport.ts",
        "line": 9
      },
      "name": "PullRequestBackportOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically approve backport PRs if the 'auto approve' workflow is available."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 48
          },
          "name": "autoApproveBackport",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"backport/\"",
            "remarks": "Make sure to include a separator at the end like `/` or `_`.",
            "stability": "experimental",
            "summary": "The prefix used to name backport branches."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 41
          },
          "name": "backportBranchNamePrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\"backport\"]",
            "stability": "experimental",
            "summary": "The labels added to the created backport PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 32
          },
          "name": "backportPRLabels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- allow backports to all release branches",
            "stability": "experimental",
            "summary": "List of branches that can be a target for backports."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 55
          },
          "name": "branches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Conflicts will have to be resolved manually, but a PR is always created.\nSet to `false` to prevent the backport PR from being created if there are conflicts.",
            "stability": "experimental",
            "summary": "Should this created Backport PRs with conflicts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 25
          },
          "name": "createWithConflicts",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"backport-to-\"",
            "stability": "experimental",
            "summary": "The prefix used to detect PRs that should be backported."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 62
          },
          "name": "labelPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"backport\"",
            "stability": "experimental",
            "summary": "The name of the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-backport.ts",
            "line": 15
          },
          "name": "workflowName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/pull-request-backport:PullRequestBackportOptions"
    },
    "projen.github.PullRequestFromPatchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.PullRequestFromPatchOptions",
      "interfaces": [
        "projen.github.CreatePullRequestOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-jobs.ts",
        "line": 62
      },
      "name": "PullRequestFromPatchOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Information about the patch that is used to create the pull request."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 66
          },
          "name": "patch",
          "type": {
            "fqn": "projen.github.PullRequestPatchSource"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"Create Pull Request\"",
            "stability": "experimental",
            "summary": "The name of the job displayed on GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 72
          },
          "name": "jobName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 80
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 87
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        }
      ],
      "symbolId": "src/github/workflow-jobs:PullRequestFromPatchOptions"
    },
    "projen.github.PullRequestLint": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Only generates a file if at least one linter is configured.",
        "stability": "experimental",
        "summary": "Configure validations to run on GitHub pull requests."
      },
      "fqn": "projen.github.PullRequestLint",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/pull-request-lint.ts",
          "line": 96
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.PullRequestLintOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/pull-request-lint.ts",
        "line": 95
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 216
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "PullRequestLint",
      "namespace": "github",
      "symbolId": "src/github/pull-request-lint:PullRequestLint"
    },
    "projen.github.PullRequestLintOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for PullRequestLint."
      },
      "fqn": "projen.github.PullRequestLintOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/pull-request-lint.ts",
        "line": 9
      },
      "name": "PullRequestLintOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no contributor statement is required",
            "remarks": "For example confirming that the contribution has been made by the contributor and complies with the project's license.\n\nAppends the statement to the end of the Pull Request template.",
            "stability": "experimental",
            "summary": "Require a contributor statement to be included in the PR description."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 47
          },
          "name": "contributorStatement",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "experimental",
            "summary": "Options for requiring a contributor statement on Pull Requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 53
          },
          "name": "contributorStatementOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.ContributorStatementOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 30
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 37
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "see": "https://www.conventionalcommits.org/",
            "stability": "experimental",
            "summary": "Validate that pull request titles follow Conventional Commits."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 16
          },
          "name": "semanticTitle",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- title must start with \"feat\", \"fix\", or \"chore\"",
            "stability": "experimental",
            "summary": "Options for validating the conventional commit title linter."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 22
          },
          "name": "semanticTitleOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.SemanticTitleOptions"
          }
        }
      ],
      "symbolId": "src/github/pull-request-lint:PullRequestLintOptions"
    },
    "projen.github.PullRequestPatchSource": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.PullRequestPatchSource",
      "interfaces": [
        "projen.github.CheckoutWithPatchOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-jobs.ts",
        "line": 50
      },
      "name": "PullRequestPatchSource",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The id of the job that created the patch file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 54
          },
          "name": "jobId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the output that indicates if a patch has been created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 59
          },
          "name": "outputName",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflow-jobs:PullRequestPatchSource"
    },
    "projen.github.PullRequestTemplate": {
      "assembly": "projen",
      "base": "projen.TextFile",
      "docs": {
        "stability": "experimental",
        "summary": "Template for GitHub pull requests."
      },
      "fqn": "projen.github.PullRequestTemplate",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/pr-template.ts",
          "line": 34
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.PullRequestTemplateOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/pr-template.ts",
        "line": 21
      },
      "methods": [
        {
          "docs": {
            "returns": "A PullRequestTemplate",
            "stability": "experimental",
            "summary": "Returns the `PullRequestTemplate` instance associated with a project or `undefined` if there is no PullRequestTemplate."
          },
          "locationInModule": {
            "filename": "src/github/pr-template.ts",
            "line": 28
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The project."
              },
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.github.PullRequestTemplate"
            }
          },
          "static": true
        }
      ],
      "name": "PullRequestTemplate",
      "namespace": "github",
      "symbolId": "src/github/pr-template:PullRequestTemplate"
    },
    "projen.github.PullRequestTemplateOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `PullRequestTemplate`."
      },
      "fqn": "projen.github.PullRequestTemplateOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/pr-template.ts",
        "line": 9
      },
      "name": "PullRequestTemplateOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- a standard default template will be created.",
            "remarks": "You can use `addLine()` to add additional lines.",
            "stability": "experimental",
            "summary": "The contents of the template."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pr-template.ts",
            "line": 15
          },
          "name": "lines",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/pr-template:PullRequestTemplateOptions"
    },
    "projen.github.SemanticTitleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://www.conventionalcommits.org/",
        "stability": "experimental",
        "summary": "Options for linting that PR titles follow Conventional Commits."
      },
      "fqn": "projen.github.SemanticTitleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/pull-request-lint.ts",
        "line": 60
      },
      "name": "SemanticTitleOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "e.g. feat(ui), fix(core)",
            "stability": "experimental",
            "summary": "Configure that a scope must always be provided."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 72
          },
          "name": "requireScope",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\"feat\", \"fix\", \"chore\"]",
            "stability": "experimental",
            "summary": "Configure a list of commit types that are allowed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/pull-request-lint.ts",
            "line": 65
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/pull-request-lint:SemanticTitleOptions"
    },
    "projen.github.SetupGitIdentityOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.SetupGitIdentityOptions",
      "interfaces": [
        "projen.github.workflows.JobStepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 215
      },
      "name": "SetupGitIdentityOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The identity to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 219
          },
          "name": "gitIdentity",
          "type": {
            "fqn": "projen.github.GitIdentity"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:SetupGitIdentityOptions"
    },
    "projen.github.Stale": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "The default configuration will:\n\n * Add a \"Stale\" label to pull requests after 14 days and closed after 2 days\n * Add a \"Stale\" label to issues after 60 days and closed after 7 days\n * If a comment is added, the label will be removed and timer is restarted.",
        "see": "https://github.com/actions/stale",
        "stability": "experimental",
        "summary": "Warns and then closes issues and PRs that have had no activity for a specified amount of time."
      },
      "fqn": "projen.github.Stale",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/stale.ts",
          "line": 107
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.github.StaleOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/stale.ts",
        "line": 106
      },
      "name": "Stale",
      "namespace": "github",
      "symbolId": "src/github/stale:Stale"
    },
    "projen.github.StaleBehavior": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Stale behavior."
      },
      "fqn": "projen.github.StaleBehavior",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/stale.ts",
        "line": 46
      },
      "name": "StaleBehavior",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "mentioning": "a maintainer when you are ready to continue.\""
            },
            "default": "\"Closing this pull request as it hasn\\'t seen activity for a while. Please add a comment",
            "stability": "experimental",
            "summary": "The comment to add to the issue/PR when it's closed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 79
          },
          "name": "closeMessage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "-",
            "remarks": "Set to -1 to disable.",
            "stability": "experimental",
            "summary": "Days until the issue/PR is closed after it is marked as \"Stale\"."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 66
          },
          "name": "daysBeforeClose",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "-",
            "remarks": "Set to -1 to disable.",
            "stability": "experimental",
            "summary": "How many days until the issue or pull request is marked as \"Stale\"."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 60
          },
          "name": "daysBeforeStale",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Same as setting `daysBeforeStale` and `daysBeforeClose` to `-1`.",
            "stability": "experimental",
            "summary": "Determines if this behavior is enabled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 54
          },
          "name": "enabled",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"backlog\"]",
            "remarks": "Set to `[]` to disable.",
            "stability": "experimental",
            "summary": "Label which exempt an issue/PR from becoming stale."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 92
          },
          "name": "exemptLabels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"stale\"",
            "stability": "experimental",
            "summary": "The label to apply to the issue/PR when it becomes stale."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 85
          },
          "name": "staleLabel",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"This pull request is now marked as stale because hasn\\'t seen activity for a while. Add a comment or it will be closed soon.\"",
            "stability": "experimental",
            "summary": "The comment to add to the issue/PR when it becomes stale."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 72
          },
          "name": "staleMessage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/stale:StaleBehavior"
    },
    "projen.github.StaleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Stale`."
      },
      "fqn": "projen.github.StaleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/stale.ts",
        "line": 10
      },
      "name": "StaleOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- By default, stale issues with no activity will be marked as\nstale after 60 days and closed within 7 days.",
            "stability": "experimental",
            "summary": "How to handle stale issues."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 25
          },
          "name": "issues",
          "optional": true,
          "type": {
            "fqn": "projen.github.StaleBehavior"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- By default, pull requests with no activity will be marked as\nstale after 14 days and closed within 2 days with relevant comments.",
            "stability": "experimental",
            "summary": "How to handle stale pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 17
          },
          "name": "pullRequest",
          "optional": true,
          "type": {
            "fqn": "projen.github.StaleBehavior"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 33
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/stale.ts",
            "line": 40
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        }
      ],
      "symbolId": "src/github/stale:StaleOptions"
    },
    "projen.github.TaskWorkflow": {
      "assembly": "projen",
      "base": "projen.github.GithubWorkflow",
      "docs": {
        "stability": "experimental",
        "summary": "A GitHub workflow for common build tasks within a project."
      },
      "fqn": "projen.github.TaskWorkflow",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/task-workflow.ts",
          "line": 44
        },
        "parameters": [
          {
            "name": "github",
            "type": {
              "fqn": "projen.github.GitHub"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.github.TaskWorkflowOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/task-workflow.ts",
        "line": 40
      },
      "name": "TaskWorkflow",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 41
          },
          "name": "jobId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 42
          },
          "name": "artifactsDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/task-workflow:TaskWorkflow"
    },
    "projen.github.TaskWorkflowJob": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "custom": {
          "implements": "Job"
        },
        "stability": "experimental",
        "summary": "The primary or initial job of a TaskWorkflow."
      },
      "fqn": "projen.github.TaskWorkflowJob",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/github/task-workflow-job.ts",
          "line": 152
        },
        "parameters": [
          {
            "docs": {
              "summary": "should be part of the project the Task belongs to."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "docs": {
              "summary": "the main task that is run as part of this job."
            },
            "name": "task",
            "type": {
              "fqn": "projen.Task"
            }
          },
          {
            "docs": {
              "summary": "options to configure the TaskWorkflowJob."
            },
            "name": "options",
            "type": {
              "fqn": "projen.github.TaskWorkflowJobOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/task-workflow-job.ts",
        "line": 127
      },
      "name": "TaskWorkflowJob",
      "namespace": "github",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 142
          },
          "name": "permissions",
          "type": {
            "fqn": "projen.github.workflows.JobPermissions"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 130
          },
          "name": "steps",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 143
          },
          "name": "concurrency",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 137
          },
          "name": "container",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ContainerOptions"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 136
          },
          "name": "continueOnError",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 134
          },
          "name": "defaults",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobDefaults"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 133
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 131
          },
          "name": "environment",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 144
          },
          "name": "if",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 140
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 141
          },
          "name": "needs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 132
          },
          "name": "outputs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStepOutput"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 128
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 129
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 138
          },
          "name": "services",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.ContainerOptions"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 145
          },
          "name": "strategy",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobStrategy"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 135
          },
          "name": "timeoutMinutes",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 139
          },
          "name": "tools",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Tools"
          }
        }
      ],
      "symbolId": "src/github/task-workflow-job:TaskWorkflowJob"
    },
    "projen.github.TaskWorkflowJobOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options to create the Job associated with a TaskWorkflow."
      },
      "fqn": "projen.github.TaskWorkflowJobOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/task-workflow-job.ts",
        "line": 23
      },
      "name": "TaskWorkflowJobOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Permissions for the build job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 80
          },
          "name": "permissions",
          "type": {
            "fqn": "projen.github.workflows.JobPermissions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not set",
            "stability": "experimental",
            "summary": "A directory name which contains artifacts to be uploaded (e.g. `dist`). If this is set, the contents of this directory will be uploaded as an artifact at the end of the workflow run, even if other steps fail."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 41
          },
          "name": "artifactsDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not set",
            "stability": "experimental",
            "summary": "Override for the `with` property of the source code checkout step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 55
          },
          "name": "checkoutWith",
          "optional": true,
          "type": {
            "fqn": "projen.github.CheckoutWith"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds an 'if' condition to the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 32
          },
          "name": "condition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default image",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 27
          },
          "name": "container",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ContainerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Use the setting on the corresponding GitHub project",
            "stability": "experimental",
            "summary": "Whether to download files from Git LFS for this workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 114
          },
          "name": "downloadLfs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Workflow environment variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 75
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The git identity to use in this workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 92
          },
          "name": "gitIdentity",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Default settings for all steps in the TaskWorkflow Job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 119
          },
          "name": "jobDefaults",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobDefaults"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Mapping of job output names to values/expressions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 87
          },
          "name": "outputs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStepOutput"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not set",
            "stability": "experimental",
            "summary": "Actions to run after the main build step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 69
          },
          "name": "postBuildSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not set",
            "stability": "experimental",
            "summary": "Steps to run before the main build step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 62
          },
          "name": "preBuildSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not set",
            "stability": "experimental",
            "summary": "Initial steps to run before the source code checkout."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 48
          },
          "name": "preCheckoutSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 100
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow-job.ts",
            "line": 107
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        }
      ],
      "symbolId": "src/github/task-workflow-job:TaskWorkflowJobOptions"
    },
    "projen.github.TaskWorkflowOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options to create a TaskWorkflow."
      },
      "fqn": "projen.github.TaskWorkflowOptions",
      "interfaces": [
        "projen.github.TaskWorkflowJobOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/task-workflow.ts",
        "line": 12
      },
      "name": "TaskWorkflowOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The workflow name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 16
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The main task to be executed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 34
          },
          "name": "task",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"build\"",
            "stability": "experimental",
            "summary": "The primary job id."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 22
          },
          "name": "jobId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- by default workflows can only be triggered by manually.",
            "stability": "experimental",
            "summary": "The triggers for the workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/task-workflow.ts",
            "line": 29
          },
          "name": "triggers",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Triggers"
          }
        }
      ],
      "symbolId": "src/github/task-workflow:TaskWorkflowOptions"
    },
    "projen.github.UploadArtifactOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.UploadArtifactOptions",
      "interfaces": [
        "projen.github.workflows.JobStepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 286
      },
      "name": "UploadArtifactOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for `upload-artifact`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 290
          },
          "name": "with",
          "type": {
            "fqn": "projen.github.UploadArtifactWith"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:UploadArtifactOptions"
    },
    "projen.github.UploadArtifactWith": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.UploadArtifactWith",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 222
      },
      "name": "UploadArtifactWith",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A file, directory or wildcard pattern that describes what to upload."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 233
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "6",
            "remarks": "The value can range from 0 to 9.\nFor large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.",
            "stability": "experimental",
            "summary": "The level of compression for Zlib to be applied to the artifact archive."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 264
          },
          "name": "compressionLevel",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"warn\"",
            "remarks": "Available Options:\n  warn: Output a warning but do not fail the action\n  error: Fail the action with an error message\n  ignore: Do not output any warnings or errors, the action does not fail",
            "stability": "experimental",
            "summary": "The desired behavior if no files are found using the provided path."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 244
          },
          "name": "ifNoFilesFound",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "The file contents of any hidden files in the path should be validated before enabled this to avoid uploading sensitive information.",
            "stability": "experimental",
            "summary": "Whether to include hidden files in the provided path in the artifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 283
          },
          "name": "includeHiddenFiles",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"artifact\"",
            "stability": "experimental",
            "summary": "Name of the artifact to upload."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 228
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Introduced in v4 and represents a breaking change from the behavior of the v3 action.\nTo maintain backwards compatibility with existing, this should be set the `true` (the default).",
            "stability": "experimental",
            "summary": "Whether action should overwrite an existing artifact with the same name (should one exist)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 274
          },
          "name": "overwrite",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The default repository retention",
            "remarks": "Minimum 1 day.\nMaximum 90 days unless changed from the repository settings page.",
            "stability": "experimental",
            "summary": "Duration after which artifact will expire in days. 0 means using default repository retention."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 254
          },
          "name": "retentionDays",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/github/workflow-steps:UploadArtifactWith"
    },
    "projen.github.UploadGitPatchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `uploadGitPatch`."
      },
      "fqn": "projen.github.UploadGitPatchOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflow-actions.ts",
        "line": 175
      },
      "name": "UploadGitPatchOptions",
      "namespace": "github",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "It will be set to `true` if there was a diff.",
            "stability": "experimental",
            "summary": "The name of the output to emit."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 196
          },
          "name": "outputName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The step ID which produces the output which indicates if a patch was created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 179
          },
          "name": "stepId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- do not fail upon mutation",
            "stability": "experimental",
            "summary": "Fail if a mutation was found and print this error message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 202
          },
          "name": "mutationError",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\".repo.patch\"",
            "stability": "experimental",
            "summary": "The name of the artifact the patch is stored as."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 191
          },
          "name": "patchFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"Find mutations\"",
            "stability": "experimental",
            "summary": "The name of the step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 185
          },
          "name": "stepName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflow-actions:UploadGitPatchOptions"
    },
    "projen.github.VersioningStrategy": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The strategy to use when edits manifest and lock files."
      },
      "fqn": "projen.github.VersioningStrategy",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/github/dependabot.ts",
        "line": 303
      },
      "members": [
        {
          "docs": {
            "remarks": "Ignore any new\nversions that would require package manifest changes.",
            "stability": "experimental",
            "summary": "Only create pull requests to update lockfiles updates."
          },
          "name": "LOCKFILE_ONLY"
        },
        {
          "docs": {
            "remarks": "- For libraries, the range of versions is widened.",
            "stability": "experimental",
            "summary": "- For apps, the version requirements are increased."
          },
          "name": "AUTO"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Relax the version requirement to include both the new and old version, when possible."
          },
          "name": "WIDEN"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Always increase the version requirement to match the new version."
          },
          "name": "INCREASE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Increase the version requirement only when required by the new version."
          },
          "name": "INCREASE_IF_NECESSARY"
        }
      ],
      "name": "VersioningStrategy",
      "namespace": "github",
      "symbolId": "src/github/dependabot:VersioningStrategy"
    },
    "projen.github.WorkflowActions": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "A set of utility functions for creating GitHub actions in workflows."
      },
      "fqn": "projen.github.WorkflowActions",
      "initializer": {
        "docs": {
          "stability": "experimental"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/workflow-actions.ts",
        "line": 17
      },
      "methods": [
        {
          "docs": {
            "returns": "Job steps",
            "stability": "experimental",
            "summary": "Checks out a repository and applies a git patch that was created using `uploadGitPatch`."
          },
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 75
          },
          "name": "checkoutWithPatch",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.github.CheckoutWithPatchOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "projen.github.workflows.JobStep"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "Job steps",
            "stability": "experimental",
            "summary": "A step that creates a pull request based on the current repo state."
          },
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 101
          },
          "name": "createPullRequest",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "type": {
                "fqn": "projen.github.CreatePullRequestOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "projen.github.workflows.JobStep"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "deprecated": "use `WorkflowSteps.setupGitIdentity` instead",
            "returns": "Job steps",
            "stability": "deprecated",
            "summary": "Configures the git identity (user name and email)."
          },
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 156
          },
          "name": "setupGitIdentity",
          "parameters": [
            {
              "docs": {
                "summary": "The identity to use."
              },
              "name": "id",
              "type": {
                "fqn": "projen.github.GitIdentity"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "projen.github.workflows.JobStep"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If a patch was uploaded, the action can optionally fail the job.",
            "returns": "Job steps",
            "stability": "experimental",
            "summary": "Creates a .patch file from the current git diff and uploads it as an artifact. Use `checkoutWithPatch` to download and apply in another job."
          },
          "locationInModule": {
            "filename": "src/github/workflow-actions.ts",
            "line": 27
          },
          "name": "uploadGitPatch",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "type": {
                "fqn": "projen.github.UploadGitPatchOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "projen.github.workflows.JobStep"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        }
      ],
      "name": "WorkflowActions",
      "namespace": "github",
      "symbolId": "src/github/workflow-actions:WorkflowActions"
    },
    "projen.github.WorkflowJobs": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "A set of utility functions for creating jobs in GitHub Workflows."
      },
      "fqn": "projen.github.WorkflowJobs",
      "initializer": {
        "docs": {
          "stability": "experimental"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/workflow-jobs.ts",
        "line": 15
      },
      "methods": [
        {
          "docs": {
            "returns": "Job",
            "stability": "experimental",
            "summary": "Creates a pull request with the changes of a patch file."
          },
          "locationInModule": {
            "filename": "src/github/workflow-jobs.ts",
            "line": 21
          },
          "name": "pullRequestFromPatch",
          "parameters": [
            {
              "name": "options",
              "type": {
                "fqn": "projen.github.PullRequestFromPatchOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.workflows.Job"
            }
          },
          "static": true
        }
      ],
      "name": "WorkflowJobs",
      "namespace": "github",
      "symbolId": "src/github/workflow-jobs:WorkflowJobs"
    },
    "projen.github.WorkflowSteps": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "A collection of very commonly used, individual, GitHub Workflow Job steps."
      },
      "fqn": "projen.github.WorkflowSteps",
      "initializer": {
        "docs": {
          "stability": "experimental"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/github/workflow-steps.ts",
        "line": 8
      },
      "methods": [
        {
          "docs": {
            "returns": "A JobStep that checks out a repository",
            "stability": "experimental",
            "summary": "Checks out a repository."
          },
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 15
          },
          "name": "checkout",
          "parameters": [
            {
              "docs": {
                "summary": "Options to configure the `checkout` JobStep."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.github.CheckoutOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.workflows.JobStep"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "A JobStep that downloads an artifact",
            "stability": "experimental",
            "summary": "Downloads an artifact."
          },
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 123
          },
          "name": "downloadArtifact",
          "parameters": [
            {
              "docs": {
                "summary": "Options to configure the `download-artifact` JobStep."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.github.DownloadArtifactOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.workflows.JobStep"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "Job step that configures the provided git identity",
            "stability": "experimental",
            "summary": "Configures the git identity (user name and email)."
          },
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 41
          },
          "name": "setupGitIdentity",
          "parameters": [
            {
              "docs": {
                "summary": "Options to configure the git identity JobStep."
              },
              "name": "options",
              "type": {
                "fqn": "projen.github.SetupGitIdentityOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.workflows.JobStep"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Requires a checkout step to have been run before this step with \"fetch-depth\" set to \"0\".\n\nOutputs:\n- `exists`: A string value of 'true' or 'false' indicating if the tag exists.",
            "returns": "Job step that checks if the provided tag exists",
            "stability": "experimental",
            "summary": "Checks if a tag exists."
          },
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 66
          },
          "name": "tagExists",
          "parameters": [
            {
              "docs": {
                "remarks": "You may use valid bash code instead of a literal string in this field.",
                "summary": "The tag to check."
              },
              "name": "tag",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Options to configure the `tag-exists` JobStep."
              },
              "name": "options",
              "type": {
                "fqn": "projen.github.workflows.JobStepConfiguration"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.workflows.JobStep"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "A JobStep that uploads an artifact",
            "stability": "experimental",
            "summary": "Uploads an artifact."
          },
          "locationInModule": {
            "filename": "src/github/workflow-steps.ts",
            "line": 95
          },
          "name": "uploadArtifact",
          "parameters": [
            {
              "docs": {
                "summary": "Options to configure the `upload-artifact` JobStep."
              },
              "name": "options",
              "type": {
                "fqn": "projen.github.UploadArtifactOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.github.workflows.JobStep"
            }
          },
          "static": true
        }
      ],
      "name": "WorkflowSteps",
      "namespace": "github",
      "symbolId": "src/github/workflow-steps:WorkflowSteps"
    },
    "projen.github.workflows.AppPermission": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The permissions available for an access token for a GitHub App."
      },
      "fqn": "projen.github.workflows.AppPermission",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 306
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Read-only acccess."
          },
          "name": "READ"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Read-write access."
          },
          "name": "WRITE"
        },
        {
          "docs": {
            "remarks": "Not all permissions support `admin`.",
            "stability": "experimental",
            "summary": "Read-write and admin access."
          },
          "name": "ADMIN"
        }
      ],
      "name": "AppPermission",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:AppPermission"
    },
    "projen.github.workflows.AppPermissions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Typically a token for a GitHub App has all the available scopes/permissions available to the app\nitself; however, a more limited set of permissions can be specified. When permissions are provided,\n**only** the specified permissions are granted to the token.",
        "see": "https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-app",
        "stability": "experimental",
        "summary": "The permissions available to a GitHub App."
      },
      "fqn": "projen.github.workflows.AppPermissions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 253
      },
      "name": "AppPermissions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 254
          },
          "name": "actions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 255
          },
          "name": "administration",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 256
          },
          "name": "checks",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 257
          },
          "name": "contents",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 258
          },
          "name": "deployments",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 259
          },
          "name": "environments",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 260
          },
          "name": "issues",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 275
          },
          "name": "members",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 261
          },
          "name": "metadata",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 276
          },
          "name": "organizationAdministration",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 278
          },
          "name": "organizationAnnouncementBanners",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 277
          },
          "name": "organizationCustomRoles",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 279
          },
          "name": "organizationHooks",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 282
          },
          "name": "organizationPackages",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 280
          },
          "name": "organizationPlan",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 281
          },
          "name": "organizationProjects",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 283
          },
          "name": "organizationSecrets",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 284
          },
          "name": "organizationSelfHostedRunners",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 285
          },
          "name": "orgnaizationUserBlocking",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 262
          },
          "name": "packages",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 263
          },
          "name": "pages",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 264
          },
          "name": "pullRequests",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 265
          },
          "name": "repositoryAnnouncementBanners",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 266
          },
          "name": "repositoryHooks",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 267
          },
          "name": "repositoryProject",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 269
          },
          "name": "secrets",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 268
          },
          "name": "secretScanningAlerts",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 270
          },
          "name": "securityEvents",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 271
          },
          "name": "singleFile",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 272
          },
          "name": "statuses",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 286
          },
          "name": "teamDiscussions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 273
          },
          "name": "vulnerabilityAlerts",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 274
          },
          "name": "workflows",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.AppPermission"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:AppPermissions"
    },
    "projen.github.workflows.BranchProtectionRuleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Branch Protection Rule options."
      },
      "fqn": "projen.github.workflows.BranchProtectionRuleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 839
      },
      "name": "BranchProtectionRuleOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 845
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:BranchProtectionRuleOptions"
    },
    "projen.github.workflows.CheckRunOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Check run options."
      },
      "fqn": "projen.github.workflows.CheckRunOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 851
      },
      "name": "CheckRunOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 857
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:CheckRunOptions"
    },
    "projen.github.workflows.CheckSuiteOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Check suite options."
      },
      "fqn": "projen.github.workflows.CheckSuiteOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 865
      },
      "name": "CheckSuiteOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 871
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:CheckSuiteOptions"
    },
    "projen.github.workflows.CommonJobDefinition": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.github.workflows.CommonJobDefinition",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 5
      },
      "name": "CommonJobDefinition",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Use `{ contents: READ }` if your job only needs to clone code.\n\nThis is intentionally a required field since it is required in order to\nallow workflows to run in GitHub repositories with restricted default\naccess.",
            "see": "https://docs.github.com/en/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token",
            "stability": "experimental",
            "summary": "You can modify the default permissions granted to the GITHUB_TOKEN, adding or removing access as required, so that you only allow the minimum required access."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 32
          },
          "name": "permissions",
          "type": {
            "fqn": "projen.github.workflows.JobPermissions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "A concurrency group can be any\nstring or expression. The expression can use any context except for the\nsecrets context.",
            "stability": "experimental",
            "summary": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 42
          },
          "name": "concurrency",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use any supported context and expression to\ncreate a conditional.",
            "stability": "experimental",
            "summary": "You can use the if conditional to prevent a job from running unless a condition is met."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 49
          },
          "name": "if",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the job displayed on GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 9
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "It can be a string or array of strings. If a job fails, all jobs\nthat need it are skipped unless the jobs use a conditional expression\nthat causes the job to continue.",
            "stability": "experimental",
            "summary": "Identifies any jobs that must complete successfully before this job will run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 17
          },
          "name": "needs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can define different\nvariations to run each job in.",
            "stability": "experimental",
            "summary": "A strategy creates a build matrix for your jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 55
          },
          "name": "strategy",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobStrategy"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:CommonJobDefinition"
    },
    "projen.github.workflows.ContainerCredentials": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Credentials to use to authenticate to Docker registries."
      },
      "fqn": "projen.github.workflows.ContainerCredentials",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 568
      },
      "name": "ContainerCredentials",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The password."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 573
          },
          "name": "password",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The username."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 570
          },
          "name": "username",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ContainerCredentials"
    },
    "projen.github.workflows.ContainerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options pertaining to container environments."
      },
      "fqn": "projen.github.workflows.ContainerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 521
      },
      "name": "ContainerOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The value can\nbe the Docker Hub image name or a registry name.",
            "stability": "experimental",
            "summary": "The Docker image to use as the container to run the action."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 526
          },
          "name": "image",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "The credentials are the same values that you would provide to the docker\nlogin command.",
            "stability": "experimental",
            "summary": "f the image's container registry requires authentication to pull the image, you can use credentials to set a map of the username and password."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 534
          },
          "name": "credentials",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ContainerCredentials"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Sets a map of environment variables in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 539
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://docs.docker.com/engine/reference/commandline/create/#options",
            "stability": "experimental",
            "summary": "Additional Docker container resource options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 562
          },
          "name": "options",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Sets an array of ports to expose on the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 544
          },
          "name": "ports",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "number"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use volumes to\nshare data between services or other steps in a job. You can specify\nnamed Docker volumes, anonymous Docker volumes, or bind mounts on the\nhost.\n\nTo specify a volume, you specify the source and destination path:\n`<source>:<destinationPath>`.",
            "stability": "experimental",
            "summary": "Sets an array of volumes for the container to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 555
          },
          "name": "volumes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ContainerOptions"
    },
    "projen.github.workflows.CreateOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Create event accepts no options."
      },
      "fqn": "projen.github.workflows.CreateOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1229
      },
      "name": "CreateOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:CreateOptions"
    },
    "projen.github.workflows.CronScheduleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "CRON schedule options."
      },
      "fqn": "projen.github.workflows.CronScheduleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 817
      },
      "name": "CronScheduleOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 821
          },
          "name": "cron",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:CronScheduleOptions"
    },
    "projen.github.workflows.DeleteOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Delete event accepts no options."
      },
      "fqn": "projen.github.workflows.DeleteOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1234
      },
      "name": "DeleteOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:DeleteOptions"
    },
    "projen.github.workflows.DeploymentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Deployment event accepts no options."
      },
      "fqn": "projen.github.workflows.DeploymentOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1239
      },
      "name": "DeploymentOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:DeploymentOptions"
    },
    "projen.github.workflows.DeploymentStatusOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Deployment status event accepts no options."
      },
      "fqn": "projen.github.workflows.DeploymentStatusOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1244
      },
      "name": "DeploymentStatusOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:DeploymentStatusOptions"
    },
    "projen.github.workflows.DiscussionCommentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Discussion comment options."
      },
      "fqn": "projen.github.workflows.DiscussionCommentOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 902
      },
      "name": "DiscussionCommentOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 908
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:DiscussionCommentOptions"
    },
    "projen.github.workflows.DiscussionOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Discussion options."
      },
      "fqn": "projen.github.workflows.DiscussionOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 877
      },
      "name": "DiscussionOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 883
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:DiscussionOptions"
    },
    "projen.github.workflows.ForkOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Fork event accepts no options."
      },
      "fqn": "projen.github.workflows.ForkOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1249
      },
      "name": "ForkOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:ForkOptions"
    },
    "projen.github.workflows.GollumOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Gollum event accepts no options."
      },
      "fqn": "projen.github.workflows.GollumOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1254
      },
      "name": "GollumOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:GollumOptions"
    },
    "projen.github.workflows.IssueCommentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Issue comment options."
      },
      "fqn": "projen.github.workflows.IssueCommentOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 914
      },
      "name": "IssueCommentOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 920
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:IssueCommentOptions"
    },
    "projen.github.workflows.IssuesOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Issues options."
      },
      "fqn": "projen.github.workflows.IssuesOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 926
      },
      "name": "IssuesOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 932
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:IssuesOptions"
    },
    "projen.github.workflows.Job": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A GitHub Workflow job definition."
      },
      "fqn": "projen.github.workflows.Job",
      "interfaces": [
        "projen.github.workflows.CommonJobDefinition"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 88
      },
      "name": "Job",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Steps can run commands,\nrun setup tasks, or run an action in your repository, a public repository,\nor an action published in a Docker registry. Not all steps run actions,\nbut all actions run as a step. Each step runs in its own process in the\nrunner environment and has access to the workspace and filesystem.\nBecause steps run in their own process, changes to environment variables\nare not preserved between steps. GitHub provides built-in steps to set up\nand complete a job.",
            "stability": "experimental",
            "summary": "A job contains a sequence of tasks called steps."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 114
          },
          "name": "steps",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If you have steps that use both script and container actions,\nthe container actions will run as sibling containers on the same network\nwith the same volume mounts.",
            "stability": "experimental",
            "summary": "A container to run any steps in a job that don't already specify a container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 163
          },
          "name": "container",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ContainerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Set to true to\nallow a workflow run to pass when this job fails.",
            "stability": "experimental",
            "summary": "Prevents a workflow run from failing when a job fails."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 155
          },
          "name": "continueOnError",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You\ncan also set default settings for the entire workflow.",
            "stability": "experimental",
            "summary": "A map of default settings that will apply to all steps in the job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 141
          },
          "name": "defaults",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobDefaults"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can also set environment variables for the entire workflow or an\nindividual step.",
            "stability": "experimental",
            "summary": "A map of environment variables that are available to all steps in the job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 135
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "All environment protection rules\nmust pass before a job referencing the environment is sent to a runner.",
            "see": "https://docs.github.com/en/actions/reference/environments",
            "stability": "experimental",
            "summary": "The environment that the job references."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 122
          },
          "name": "environment",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Job outputs are available to all downstream\njobs that depend on this job.",
            "stability": "experimental",
            "summary": "A map of outputs for a job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 128
          },
          "name": "outputs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStepOutput"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "[\"ubuntu-latest\"]",
            "remarks": "The machine can be either a\nGitHub-hosted runner or a self-hosted runner.",
            "stability": "experimental",
            "summary": "The type of machine to run the job on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 95
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 102
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Service\ncontainers are useful for creating databases or cache services like Redis.\nThe runner automatically creates a Docker network and manages the life\ncycle of the service containers.",
            "stability": "experimental",
            "summary": "Used to host service containers for a job in a workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 171
          },
          "name": "services",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.ContainerOptions"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "360",
            "stability": "experimental",
            "summary": "The maximum number of minutes to let a job run before GitHub automatically cancels it."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 149
          },
          "name": "timeoutMinutes",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Translates into `actions/setup-xxx` steps at\nthe beginning of the job.",
            "stability": "experimental",
            "summary": "Tools required for this job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 177
          },
          "name": "tools",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Tools"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:Job"
    },
    "projen.github.workflows.JobCallingReusableWorkflow": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A GitHub Workflow Job calling a reusable workflow."
      },
      "fqn": "projen.github.workflows.JobCallingReusableWorkflow",
      "interfaces": [
        "projen.github.workflows.CommonJobDefinition"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 62
      },
      "name": "JobCallingReusableWorkflow",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The location and version of a reusable workflow file to run as a job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 66
          },
          "name": "uses",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Use the 'inherit' keyword to pass all the calling workflow's secrets to the called workflow",
            "stability": "experimental",
            "summary": "When a job is used to call a reusable workflow, you can use secrets to provide a map of secrets that are passed to the called workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 82
          },
          "name": "secrets",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "map"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Allowed expression contexts: `github`, and `needs`.",
            "stability": "experimental",
            "summary": "When a job is used to call a reusable workflow, you can use with to provide a map of inputs that are passed to the called workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 74
          },
          "name": "with",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "boolean"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobCallingReusableWorkflow"
    },
    "projen.github.workflows.JobDefaults": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Default settings for all steps in the job."
      },
      "fqn": "projen.github.workflows.JobDefaults",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 337
      },
      "name": "JobDefaults",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Default run settings."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 339
          },
          "name": "run",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.RunSettings"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobDefaults"
    },
    "projen.github.workflows.JobMatrix": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A job matrix."
      },
      "fqn": "projen.github.workflows.JobMatrix",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 491
      },
      "name": "JobMatrix",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The keys you\ndefine become properties in the matrix context and you can reference the\nproperty in other areas of your workflow file. For example, if you define\nthe key os that contains an array of operating systems, you can use the\nmatrix.os property as the value of the runs-on keyword to create a job\nfor each operating system.",
            "stability": "experimental",
            "summary": "Each option you define in the matrix has a key and value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 500
          },
          "name": "domain",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "collection": {
                        "elementtype": {
                          "union": {
                            "types": [
                              {
                                "primitive": "string"
                              },
                              {
                                "primitive": "number"
                              },
                              {
                                "primitive": "boolean"
                              }
                            ]
                          }
                        },
                        "kind": "array"
                      }
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Using exclude removes a job defined by the\nbuild matrix.",
            "stability": "experimental",
            "summary": "You can remove a specific configurations defined in the build matrix using the exclude option."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 515
          },
          "name": "exclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "union": {
                      "types": [
                        {
                          "primitive": "string"
                        },
                        {
                          "primitive": "number"
                        },
                        {
                          "primitive": "boolean"
                        }
                      ]
                    }
                  },
                  "kind": "map"
                }
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "For example, if you want to use a specific version of npm\nwhen the job that uses windows-latest and version 8 of node runs, you can\nuse include to specify that additional option.",
            "stability": "experimental",
            "summary": "You can add additional configuration options to a build matrix job that already exists."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 508
          },
          "name": "include",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "union": {
                      "types": [
                        {
                          "primitive": "string"
                        },
                        {
                          "primitive": "number"
                        },
                        {
                          "primitive": "boolean"
                        }
                      ]
                    }
                  },
                  "kind": "map"
                }
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobMatrix"
    },
    "projen.github.workflows.JobPermission": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Access level for workflow permission scopes."
      },
      "fqn": "projen.github.workflows.JobPermission",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 292
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Read-only access."
          },
          "name": "READ"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Read-write access."
          },
          "name": "WRITE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "No access at all."
          },
          "name": "NONE"
        }
      ],
      "name": "JobPermission",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:JobPermission"
    },
    "projen.github.workflows.JobPermissions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "If you\nspecify the access for any of these scopes, all those that are not\nspecified are set to `JobPermission.NONE`, instead of the default behavior\nwhen none is specified.",
        "stability": "experimental",
        "summary": "The available scopes and access values for workflow permissions."
      },
      "fqn": "projen.github.workflows.JobPermissions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 228
      },
      "name": "JobPermissions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 229
          },
          "name": "actions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 230
          },
          "name": "checks",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 231
          },
          "name": "contents",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 232
          },
          "name": "deployments",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 235
          },
          "name": "discussions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 233
          },
          "name": "idToken",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 234
          },
          "name": "issues",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 236
          },
          "name": "packages",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 237
          },
          "name": "pages",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 238
          },
          "name": "pullRequests",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 239
          },
          "name": "repositoryProjects",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 240
          },
          "name": "securityEvents",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 241
          },
          "name": "statuses",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermission"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobPermissions"
    },
    "projen.github.workflows.JobStep": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsteps",
        "stability": "experimental",
        "summary": "JobSteps run as part of a GitHub Workflow Job."
      },
      "fqn": "projen.github.workflows.JobStep",
      "interfaces": [
        "projen.github.workflows.Step",
        "projen.github.workflows.JobStepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 451
      },
      "name": "JobStep",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:JobStep"
    },
    "projen.github.workflows.JobStepConfiguration": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "These settings are unique to a JobStep from the fields contained within the metadata action.yaml file present in when creating a new GitHub Action. These fields are not present in action.yml, but are in JobStep, which are using when creating workflows."
      },
      "fqn": "projen.github.workflows.JobStepConfiguration",
      "interfaces": [
        "projen.github.workflows.StepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 433
      },
      "name": "JobStepConfiguration",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Set to true to allow a job\nto pass when this step fails.",
            "stability": "experimental",
            "summary": "Prevents a job from failing when a step fails."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 438
          },
          "name": "continueOnError",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The maximum number of minutes to run the step before killing the process."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 443
          },
          "name": "timeoutMinutes",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobStepConfiguration"
    },
    "projen.github.workflows.JobStepOutput": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "An output binding for a job."
      },
      "fqn": "projen.github.workflows.JobStepOutput",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 322
      },
      "name": "JobStepOutput",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the job output that is being bound."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 331
          },
          "name": "outputName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The ID of the step that exposes the output."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 326
          },
          "name": "stepId",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobStepOutput"
    },
    "projen.github.workflows.JobStrategy": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "You can define different\nvariations to run each job in.",
        "stability": "experimental",
        "summary": "A strategy creates a build matrix for your jobs."
      },
      "fqn": "projen.github.workflows.JobStrategy",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 457
      },
      "name": "JobStrategy",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Default: true",
            "stability": "experimental",
            "summary": "When set to true, GitHub cancels all in-progress jobs if any matrix job fails."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 475
          },
          "name": "failFast",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "A matrix allows\nyou to create multiple jobs by performing variable substitution in a\nsingle job definition. For example, you can use a matrix to create jobs\nfor more than one supported version of a programming language, operating\nsystem, or tool. A matrix reuses the job's configuration and creates a\njob for each matrix you configure.\n\nA job matrix can generate a maximum of 256 jobs per workflow run. This\nlimit also applies to self-hosted runners.",
            "stability": "experimental",
            "summary": "You can define a matrix of different job configurations."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 469
          },
          "name": "matrix",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobMatrix"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "By default, GitHub will maximize the number of jobs\nrun in parallel depending on the available runners on GitHub-hosted\nvirtual machines.",
            "stability": "experimental",
            "summary": "The maximum number of jobs that can run simultaneously when using a matrix job strategy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 483
          },
          "name": "maxParallel",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:JobStrategy"
    },
    "projen.github.workflows.LabelOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Label options."
      },
      "fqn": "projen.github.workflows.LabelOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 955
      },
      "name": "LabelOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 961
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:LabelOptions"
    },
    "projen.github.workflows.MergeGroupOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Merge group options."
      },
      "fqn": "projen.github.workflows.MergeGroupOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 969
      },
      "name": "MergeGroupOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If not specified, all branches will\ntrigger the workflow.",
            "stability": "experimental",
            "summary": "When using the merge_group events, you can configure a workflow to run on specific base branches."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 975
          },
          "name": "branches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:MergeGroupOptions"
    },
    "projen.github.workflows.MilestoneOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Milestone options."
      },
      "fqn": "projen.github.workflows.MilestoneOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 981
      },
      "name": "MilestoneOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 987
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:MilestoneOptions"
    },
    "projen.github.workflows.PageBuildOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Page build event accepts no options."
      },
      "fqn": "projen.github.workflows.PageBuildOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1259
      },
      "name": "PageBuildOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:PageBuildOptions"
    },
    "projen.github.workflows.ProjectCardOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Project card options."
      },
      "fqn": "projen.github.workflows.ProjectCardOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1009
      },
      "name": "ProjectCardOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1015
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ProjectCardOptions"
    },
    "projen.github.workflows.ProjectColumnOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Probject column options."
      },
      "fqn": "projen.github.workflows.ProjectColumnOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1023
      },
      "name": "ProjectColumnOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1029
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ProjectColumnOptions"
    },
    "projen.github.workflows.ProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Project options."
      },
      "fqn": "projen.github.workflows.ProjectOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 995
      },
      "name": "ProjectOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1001
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ProjectOptions"
    },
    "projen.github.workflows.PublicOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Public event accepts no options."
      },
      "fqn": "projen.github.workflows.PublicOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1264
      },
      "name": "PublicOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:PublicOptions"
    },
    "projen.github.workflows.PullRequestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Pull request options."
      },
      "fqn": "projen.github.workflows.PullRequestOptions",
      "interfaces": [
        "projen.github.workflows.PushOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1035
      },
      "name": "PullRequestOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1041
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:PullRequestOptions"
    },
    "projen.github.workflows.PullRequestReviewCommentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Pull request review comment options."
      },
      "fqn": "projen.github.workflows.PullRequestReviewCommentOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1074
      },
      "name": "PullRequestReviewCommentOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1080
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:PullRequestReviewCommentOptions"
    },
    "projen.github.workflows.PullRequestReviewOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Pull request review options."
      },
      "fqn": "projen.github.workflows.PullRequestReviewOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1062
      },
      "name": "PullRequestReviewOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1068
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:PullRequestReviewOptions"
    },
    "projen.github.workflows.PullRequestTargetOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Pull request target options."
      },
      "fqn": "projen.github.workflows.PullRequestTargetOptions",
      "interfaces": [
        "projen.github.workflows.PushOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1086
      },
      "name": "PullRequestTargetOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1092
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:PullRequestTargetOptions"
    },
    "projen.github.workflows.PushOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for push-like events."
      },
      "fqn": "projen.github.workflows.PushOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1113
      },
      "name": "PushOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "For a pull_request event, only\nbranches and tags on the base are evaluated. If you define only tags or\nonly branches, the workflow won't run for events affecting the undefined\nGit ref.",
            "see": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet",
            "stability": "experimental",
            "summary": "When using the push, pull_request and pull_request_target events, you can configure a workflow to run on specific branches or tags."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1123
          },
          "name": "branches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Path filters are not\nevaluated for pushes to tags.",
            "see": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet",
            "stability": "experimental",
            "summary": "When using the push, pull_request and pull_request_target events, you can configure a workflow to run when at least one file does not match paths-ignore or at least one modified file matches the configured paths."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1144
          },
          "name": "paths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "For a pull_request event, only\nbranches and tags on the base are evaluated. If you define only tags or\nonly branches, the workflow won't run for events affecting the undefined\nGit ref.",
            "see": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet",
            "stability": "experimental",
            "summary": "When using the push, pull_request and pull_request_target events, you can configure a workflow to run on specific branches or tags."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1134
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:PushOptions"
    },
    "projen.github.workflows.RegistryPackageOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Registry package options."
      },
      "fqn": "projen.github.workflows.RegistryPackageOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1150
      },
      "name": "RegistryPackageOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1156
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:RegistryPackageOptions"
    },
    "projen.github.workflows.ReleaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Release options."
      },
      "fqn": "projen.github.workflows.ReleaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1162
      },
      "name": "ReleaseOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1168
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ReleaseOptions"
    },
    "projen.github.workflows.RepositoryDispatchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Repository dispatch options."
      },
      "fqn": "projen.github.workflows.RepositoryDispatchOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 827
      },
      "name": "RepositoryDispatchOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 833
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:RepositoryDispatchOptions"
    },
    "projen.github.workflows.RunSettings": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Run settings for a job."
      },
      "fqn": "projen.github.workflows.RunSettings",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 345
      },
      "name": "RunSettings",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "\"bash\"",
            "stability": "experimental",
            "summary": "Which shell to use for running the step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 351
          },
          "name": "shell",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Working directory to use when running the step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 356
          },
          "name": "workingDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:RunSettings"
    },
    "projen.github.workflows.StatusOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Status event accepts no options."
      },
      "fqn": "projen.github.workflows.StatusOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1269
      },
      "name": "StatusOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:StatusOptions"
    },
    "projen.github.workflows.Step": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "This is by far the most common use case.\n- The metadata file `action.yaml` that is used to define an Action when you are creating one. As in, if you were creating an Action to be used in a JobStep.\nThere is some overlap between the two, and this captures that overlap.",
        "see": "https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions",
        "stability": "experimental",
        "summary": "This contains the fields that are common amongst both: - JobStep, which is a step that is part of a Job in Github Actions."
      },
      "fqn": "projen.github.workflows.Step",
      "interfaces": [
        "projen.github.workflows.StepConfiguration"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 405
      },
      "name": "Step",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If you do\nnot provide a name, the step name will default to the text specified in\nthe run command.",
            "stability": "experimental",
            "summary": "Runs command-line programs using the operating system's shell."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 419
          },
          "name": "run",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "An action is a\nreusable unit of code. You can use an action defined in the same\nrepository as the workflow, a public repository, or in a published Docker\ncontainer image.",
            "stability": "experimental",
            "summary": "Selects an action to run as part of a step in your job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 412
          },
          "name": "uses",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Each input parameter\nis a key/value pair. Input parameters are set as environment variables.\nThe variable is prefixed with INPUT_ and converted to upper case.",
            "stability": "experimental",
            "summary": "A map of the input parameters defined by the action."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 426
          },
          "name": "with",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:Step"
    },
    "projen.github.workflows.StepConfiguration": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "These fields can have none present, but can be present on every Step, and have no effect on one another.\n\nThis stands in contrast to the Command (non-Configuration) fields, which are mutually exclusive, and describe the What.",
        "stability": "experimental",
        "summary": "Fields that describe the How, Why, When, and Who of a Step."
      },
      "fqn": "projen.github.workflows.StepConfiguration",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 365
      },
      "name": "StepConfiguration",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "You can also set environment variables for the entire workflow or a job.",
            "stability": "experimental",
            "summary": "Sets environment variables for steps to use in the runner environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 388
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use the id to reference the\nstep in contexts.",
            "stability": "experimental",
            "summary": "A unique identifier for the step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 370
          },
          "name": "id",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use any supported context and expression to\ncreate a conditional.",
            "stability": "experimental",
            "summary": "You can use the if conditional to prevent a job from running unless a condition is met."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 377
          },
          "name": "if",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A name for your step to display on GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 382
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Overrides a job's working directory.",
            "stability": "experimental",
            "summary": "Specifies a working directory for a step."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 394
          },
          "name": "workingDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:StepConfiguration"
    },
    "projen.github.workflows.ToolRequirement": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Version requirement for tools."
      },
      "fqn": "projen.github.workflows.ToolRequirement",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 218
      },
      "name": "ToolRequirement",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 219
          },
          "name": "version",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:ToolRequirement"
    },
    "projen.github.workflows.Tools": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Supported tools."
      },
      "fqn": "projen.github.workflows.Tools",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 183
      },
      "name": "Tools",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- not installed",
            "stability": "experimental",
            "summary": "Setup .NET Core."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 212
          },
          "name": "dotnet",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ToolRequirement"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not installed",
            "stability": "experimental",
            "summary": "Setup golang."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 200
          },
          "name": "go",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ToolRequirement"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not installed",
            "stability": "experimental",
            "summary": "Setup java (temurin distribution)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 188
          },
          "name": "java",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ToolRequirement"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not installed",
            "stability": "experimental",
            "summary": "Setup node.js."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 206
          },
          "name": "node",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ToolRequirement"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not installed",
            "stability": "experimental",
            "summary": "Setup python."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 194
          },
          "name": "python",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ToolRequirement"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:Tools"
    },
    "projen.github.workflows.Triggers": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows",
        "stability": "experimental",
        "summary": "The set of available triggers for GitHub Workflows."
      },
      "fqn": "projen.github.workflows.Triggers",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 581
      },
      "name": "Triggers",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the branch_protection_rule event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 623
          },
          "name": "branchProtectionRule",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.BranchProtectionRuleOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the check_run event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 628
          },
          "name": "checkRun",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.CheckRunOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the check_suite event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 633
          },
          "name": "checkSuite",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.CheckSuiteOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime someone creates a branch or tag, which triggers the create event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 639
          },
          "name": "create",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.CreateOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime someone deletes a branch or tag, which triggers the delete event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 645
          },
          "name": "delete",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.DeleteOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Deployments created with a commit SHA may not have\na Git ref.",
            "stability": "experimental",
            "summary": "Runs your workflow anytime someone creates a deployment, which triggers the deployment event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 652
          },
          "name": "deployment",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.DeploymentOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Deployments created with a\ncommit SHA may not have a Git ref.",
            "stability": "experimental",
            "summary": "Runs your workflow anytime a third party provides a deployment status, which triggers the deployment_status event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 659
          },
          "name": "deploymentStatus",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.DeploymentStatusOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "More than one activity type triggers this event.",
            "see": "https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions",
            "stability": "experimental",
            "summary": "Runs your workflow anytime the discussion event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 665
          },
          "name": "discussion",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.DiscussionOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "More than one activity type triggers this event.",
            "see": "https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions",
            "stability": "experimental",
            "summary": "Runs your workflow anytime the discussion_comment event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 671
          },
          "name": "discussionComment",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.DiscussionCommentOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime when someone forks a repository, which triggers the fork event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 677
          },
          "name": "fork",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ForkOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow when someone creates or updates a Wiki page, which triggers the gollum event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 683
          },
          "name": "gollum",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.GollumOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the issue_comment event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 688
          },
          "name": "issueComment",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.IssueCommentOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the issues event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 693
          },
          "name": "issues",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.IssuesOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the label event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 698
          },
          "name": "label",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.LabelOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow when a pull request is added to a merge queue, which adds the pull request to a merge group."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 706
          },
          "name": "mergeGroup",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.MergeGroupOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the milestone event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 711
          },
          "name": "milestone",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.MilestoneOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime someone pushes to a GitHub Pages-enabled branch, which triggers the page_build event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 717
          },
          "name": "pageBuild",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PageBuildOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the project event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 722
          },
          "name": "project",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ProjectOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the project_card event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 727
          },
          "name": "projectCard",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ProjectCardOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the project_column event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 732
          },
          "name": "projectColumn",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ProjectColumnOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime someone makes a private repository public, which triggers the public event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 738
          },
          "name": "public",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PublicOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the pull_request event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 743
          },
          "name": "pullRequest",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PullRequestOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the pull_request_review event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 748
          },
          "name": "pullRequestReview",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PullRequestReviewOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime a comment on a pull request's unified diff is modified, which triggers the pull_request_review_comment event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 754
          },
          "name": "pullRequestReviewComment",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PullRequestReviewCommentOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This prevents\nexecuting unsafe workflow code from the head of the pull request that\ncould alter your repository or steal any secrets you use in your workflow.\nThis event allows you to do things like create workflows that label and\ncomment on pull requests based on the contents of the event payload.\n\nWARNING: The `pull_request_target` event is granted read/write repository\ntoken and can access secrets, even when it is triggered from a fork.\nAlthough the workflow runs in the context of the base of the pull request,\nyou should make sure that you do not check out, build, or run untrusted\ncode from the pull request with this event. Additionally, any caches\nshare the same scope as the base branch, and to help prevent cache\npoisoning, you should not save the cache if there is a possibility that\nthe cache contents were altered.",
            "see": "https://securitylab.github.com/research/github-actions-preventing-pwn-requests",
            "stability": "experimental",
            "summary": "This event runs in the context of the base of the pull request, rather than in the merge commit as the pull_request event does."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 775
          },
          "name": "pullRequestTarget",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PullRequestTargetOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow when someone pushes to a repository branch, which triggers the push event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 781
          },
          "name": "push",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.PushOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime a package is published or updated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 786
          },
          "name": "registryPackage",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.RegistryPackageOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the release event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 791
          },
          "name": "release",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ReleaseOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "You can use the GitHub API to trigger a webhook event called repository_dispatch when you want to trigger a workflow for activity that happens outside of GitHub."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 608
          },
          "name": "repositoryDispatch",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.RepositoryDispatchOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Scheduled workflows run on the latest commit on the default or\nbase branch. The shortest interval you can run scheduled workflows is\nonce every 5 minutes.",
            "see": "https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07",
            "stability": "experimental",
            "summary": "You can schedule a workflow to run at specific UTC times using POSIX cron syntax."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 591
          },
          "name": "schedule",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.CronScheduleOptions"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the status of a Git commit changes, which triggers the status event."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 797
          },
          "name": "status",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.StatusOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Runs your workflow anytime the watch event occurs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 802
          },
          "name": "watch",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.WatchOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://docs.github.com/en/actions/learn-github-actions/reusing-workflows",
            "stability": "experimental",
            "summary": "Can be called from another workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 616
          },
          "name": "workflowCall",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.WorkflowCallOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "When the\nworkflow runs, you can access the input values in the github.event.inputs\ncontext.",
            "stability": "experimental",
            "summary": "You can configure custom-defined input properties, default input values, and required inputs for the event directly in your workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 601
          },
          "name": "workflowDispatch",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.WorkflowDispatchOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "A workflow run is triggered regardless of the result of the\nprevious workflow.",
            "stability": "experimental",
            "summary": "This event occurs when a workflow run is requested or completed, and allows you to execute a workflow based on the finished result of another workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 810
          },
          "name": "workflowRun",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.WorkflowRunOptions"
          }
        }
      ],
      "symbolId": "src/github/workflows-model:Triggers"
    },
    "projen.github.workflows.WatchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Watch options."
      },
      "fqn": "projen.github.workflows.WatchOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1182
      },
      "name": "WatchOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1188
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:WatchOptions"
    },
    "projen.github.workflows.WorkflowCallOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Workflow Call event accepts no options."
      },
      "fqn": "projen.github.workflows.WorkflowCallOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1224
      },
      "name": "WorkflowCallOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:WorkflowCallOptions"
    },
    "projen.github.workflows.WorkflowDispatchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The Workflow dispatch event accepts no options."
      },
      "fqn": "projen.github.workflows.WorkflowDispatchOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1219
      },
      "name": "WorkflowDispatchOptions",
      "namespace": "github.workflows",
      "symbolId": "src/github/workflows-model:WorkflowDispatchOptions"
    },
    "projen.github.workflows.WorkflowRunOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Workflow run options."
      },
      "fqn": "projen.github.workflows.WorkflowRunOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/github/workflows-model.ts",
        "line": 1194
      },
      "name": "WorkflowRunOptions",
      "namespace": "github.workflows",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- no branch limits"
            },
            "stability": "experimental",
            "summary": "Which branches or branch-ignore to limit the trigger to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1212
          },
          "name": "branches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- all activity types"
            },
            "stability": "experimental",
            "summary": "Which activity types to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1206
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "defaults": "- any workflows"
            },
            "stability": "experimental",
            "summary": "Which workflow to trigger on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/github/workflows-model.ts",
            "line": 1200
          },
          "name": "workflows",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/github/workflows-model:WorkflowRunOptions"
    },
    "projen.gitlab.Action": {
      "assembly": "projen",
      "docs": {
        "remarks": "'start' (default) indicates the job will start the\ndeployment. 'prepare' indicates this will not affect the deployment. 'stop' indicates\nthis will stop the deployment.",
        "stability": "experimental",
        "summary": "Specifies what this job will do."
      },
      "fqn": "projen.gitlab.Action",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 395
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PREPARE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "START"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "STOP"
        }
      ],
      "name": "Action",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:Action"
    },
    "projen.gitlab.AllowFailure": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "The job fails for any other exit code.\nYou can list which exit codes are not considered failures. The job fails for any other\nexit code.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#allow_failure",
        "stability": "experimental",
        "summary": "Exit code that are not considered failure."
      },
      "fqn": "projen.gitlab.AllowFailure",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 284
      },
      "name": "AllowFailure",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 285
          },
          "name": "exitCodes",
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "number"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "number"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:AllowFailure"
    },
    "projen.gitlab.Artifacts": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Artifacts are sent to Gitlab where they can be downloaded.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#artifacts",
        "stability": "experimental",
        "summary": "Used to specify a list of files and directories that should be attached to the job if it succeeds."
      },
      "fqn": "projen.gitlab.Artifacts",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 100
      },
      "name": "Artifacts",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of paths to files/folders that should be excluded in the artifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 102
          },
          "name": "exclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "They are saved 30 days by default. Artifacts that have expired are removed periodically via cron job. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'.",
            "stability": "experimental",
            "summary": "How long artifacts should be kept."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 104
          },
          "name": "expireIn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "GitLab will add a link <expose_as> to the relevant merge request that points to the artifact.",
            "stability": "experimental",
            "summary": "Can be used to expose job artifacts in the merge request UI."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 106
          },
          "name": "exposeAs",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Can use variables in the name, e.g. '$CI_JOB_NAME'",
            "stability": "experimental",
            "summary": "Name for the archive created on job success."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 108
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of paths to files/folders that should be included in the artifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 110
          },
          "name": "paths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 112
          },
          "name": "reports",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Reports"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Whether to add all untracked files (along with 'artifacts.paths') to the artifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 114
          },
          "name": "untracked",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configure when artifacts are uploaded depended on job status."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 116
          },
          "name": "when",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.CacheWhen"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Artifacts"
    },
    "projen.gitlab.Assets": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Asset configuration for a release."
      },
      "fqn": "projen.gitlab.Assets",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 511
      },
      "name": "Assets",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Include asset links in the release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 513
          },
          "name": "links",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Link"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Assets"
    },
    "projen.gitlab.Cache": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#cache",
        "stability": "experimental",
        "summary": "Cache Definition."
      },
      "fqn": "projen.gitlab.Cache",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 9
      },
      "name": "Cache",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Caches are retrieved in the order specified in the fallback_keys section.",
            "stability": "experimental",
            "summary": "Use cache:fallback_keys to specify a list of keys to try to restore cache from if there is no cache found for the cache:key."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 26
          },
          "name": "fallbackKeys",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "All jobs that use the same cache key use the same cache.",
            "stability": "experimental",
            "summary": "Used the to give each cache a unique identifying key."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 14
          },
          "name": "key",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "fqn": "projen.gitlab.CacheKeyFiles"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Defines which files or directories to cache."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 11
          },
          "name": "paths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Defines the upload and download behaviour of the cache."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 20
          },
          "name": "policy",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.CachePolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "If set to true all files that are untracked in your Git repository will be cached."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 17
          },
          "name": "untracked",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Defines when to save the cache, based on the status of the job (Default: Job Success)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 23
          },
          "name": "when",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.CacheWhen"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Cache"
    },
    "projen.gitlab.CacheKeyFiles": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#cachekeyfiles",
        "stability": "experimental",
        "summary": "Use this construct to generate a new key when one or two specific files change."
      },
      "fqn": "projen.gitlab.CacheKeyFiles",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 33
      },
      "name": "CacheKeyFiles",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If the SHA checksum changes, the cache becomes invalid.",
            "stability": "experimental",
            "summary": "The files that are checked against."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 35
          },
          "name": "files",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds a custom prefix to the checksums computed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 37
          },
          "name": "prefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:CacheKeyFiles"
    },
    "projen.gitlab.CachePolicy": {
      "assembly": "projen",
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#cachepolicy",
        "stability": "experimental",
        "summary": "Configure the upload and download behaviour of a cache."
      },
      "fqn": "projen.gitlab.CachePolicy",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 44
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Only download the cache when the job starts, but never upload changes when the job finishes."
          },
          "name": "PULL"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Only upload a cache when the job finishes, but never download the cache when the job starts."
          },
          "name": "PUSH"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The job downloads the cache when the job starts, and uploads changes to the cache when the job ends."
          },
          "name": "PULL_PUSH"
        }
      ],
      "name": "CachePolicy",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:CachePolicy"
    },
    "projen.gitlab.CacheWhen": {
      "assembly": "projen",
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#cachewhen",
        "stability": "experimental",
        "summary": "Configure when artifacts are uploaded depended on job status."
      },
      "fqn": "projen.gitlab.CacheWhen",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 57
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Upload artifacts regardless of job status."
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Upload artifacts only when the job fails."
          },
          "name": "ON_FAILURE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Upload artifacts only when the job succeeds (this is the default)."
          },
          "name": "ON_SUCCESS"
        }
      ],
      "name": "CacheWhen",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:CacheWhen"
    },
    "projen.gitlab.CiConfiguration": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "A CI is a configurable automated process made up of one or more stages/jobs.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/",
        "stability": "experimental",
        "summary": "CI for GitLab."
      },
      "fqn": "projen.gitlab.CiConfiguration",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/gitlab/configuration.ts",
          "line": 154
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.gitlab.CiConfigurationOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/gitlab/configuration.ts",
        "line": 62
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds up to 4 default caches configuration to the CI configuration."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 349
          },
          "name": "addDefaultCaches",
          "parameters": [
            {
              "docs": {
                "summary": "Caches to add."
              },
              "name": "caches",
              "type": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.gitlab.Cache"
                  },
                  "kind": "array"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a globally defined variable to the CI configuration."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 290
          },
          "name": "addGlobalVariables",
          "parameters": [
            {
              "docs": {
                "summary": "The variables to add."
              },
              "name": "variables",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add additional yml/yaml files to the CI includes."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 203
          },
          "name": "addIncludes",
          "parameters": [
            {
              "docs": {
                "summary": "The includes to add."
              },
              "name": "includes",
              "type": {
                "fqn": "projen.gitlab.Include"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add jobs and their stages to the CI configuration."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 317
          },
          "name": "addJobs",
          "parameters": [
            {
              "docs": {
                "summary": "Jobs to add."
              },
              "name": "jobs",
              "type": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.gitlab.Job"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add additional services."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 270
          },
          "name": "addServices",
          "parameters": [
            {
              "docs": {
                "summary": "The services to add."
              },
              "name": "services",
              "type": {
                "fqn": "projen.gitlab.Service"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add stages to the CI configuration if not already present."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 305
          },
          "name": "addStages",
          "parameters": [
            {
              "docs": {
                "summary": "stages to add."
              },
              "name": "stages",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "CiConfiguration",
      "namespace": "gitlab",
      "properties": [
        {
          "docs": {
            "remarks": "Can be overriden by the job level `afterScript`.",
            "stability": "experimental",
            "summary": "Defines default scripts that should run *after* all jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 78
          },
          "name": "defaultAfterScript",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "Can be overriden by the job level `afterScript`.",
            "stability": "experimental",
            "summary": "Defines default scripts that should run *before* all jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 86
          },
          "name": "defaultBeforeScript",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Used to select a specific runner from the list of all runners that are available for the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 114
          },
          "name": "defaultTags",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The workflow YAML file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 74
          },
          "name": "file",
          "type": {
            "fqn": "projen.YamlFile"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The jobs in the CI configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 152
          },
          "name": "jobs",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Job"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 66
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Path to CI file generated by the configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 70
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "All jobs in one stage must complete before next stage is\nexecuted. Defaults to ['build', 'test', 'deploy'].",
            "stability": "experimental",
            "summary": "Groups jobs into stages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 138
          },
          "name": "stages",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "If the job already has that variable defined, the job-level variable takes precedence.",
            "stability": "experimental",
            "summary": "Global variables that are passed to jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 143
          },
          "name": "variables",
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "number"
                    },
                    {
                      "fqn": "projen.gitlab.VariableConfig"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "remarks": "Artifacts are sent to Gitlab where they can be downloaded.",
            "stability": "experimental",
            "summary": "Default list of files and directories that should be attached to the job if it succeeds."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 82
          },
          "name": "defaultArtifacts",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Artifacts"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 92
          },
          "name": "defaultCache",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Cache"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Default ID tokens (JSON Web Tokens) that are used for CI/CD authentication to use globally for all jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 122
          },
          "name": "defaultIdTokens",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.IDToken"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Specifies the default docker image to use globally for all jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 98
          },
          "name": "defaultImage",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Image"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The default behavior for whether a job should be canceled when a newer pipeline starts before the job completes (Default: false)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 102
          },
          "name": "defaultInterruptible",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "remarks": "If not defined, defaults to 0 and jobs do not retry.",
            "stability": "experimental",
            "summary": "How many times a job is retried if it fails."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 106
          },
          "name": "defaultRetry",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Retry"
          }
        },
        {
          "docs": {
            "remarks": "one hour, 3600 seconds, 60 minutes).",
            "stability": "experimental",
            "summary": "A default timeout job written in natural language (Ex."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 118
          },
          "name": "defaultTimeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Requires a `public/` directory\nwith `artifacts.path` pointing to it.",
            "stability": "experimental",
            "summary": "A special job used to upload static sites to Gitlab pages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 133
          },
          "name": "pages",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Job"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Used to control pipeline behavior."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 148
          },
          "name": "workflow",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Workflow"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration:CiConfiguration"
    },
    "projen.gitlab.CiConfigurationOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `CiConfiguration`."
      },
      "fqn": "projen.gitlab.CiConfigurationOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration.ts",
        "line": 23
      },
      "name": "CiConfigurationOptions",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Jobs that do not define one or more of the listed keywords use the value defined in the default section.",
            "stability": "experimental",
            "summary": "Default settings for the CI Configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 27
          },
          "name": "default",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Default"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "An initial set of jobs to add to the configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 50
          },
          "name": "jobs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Job"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Requires a `public/` directory\nwith `artifacts.path` pointing to it.",
            "stability": "experimental",
            "summary": "A special job used to upload static sites to Gitlab pages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 32
          },
          "name": "pages",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Job"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The path of the file to generate."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 54
          },
          "name": "path",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "All jobs in one stage must complete before next stage is\nexecuted. If no stages are specified. Defaults to ['build', 'test', 'deploy'].",
            "stability": "experimental",
            "summary": "Groups jobs into stages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 41
          },
          "name": "stages",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If the job already has that variable defined, the job-level variable takes precedence.",
            "stability": "experimental",
            "summary": "Global variables that are passed to jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 46
          },
          "name": "variables",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Used to control pipeline behavior."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration.ts",
            "line": 36
          },
          "name": "workflow",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Workflow"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration:CiConfigurationOptions"
    },
    "projen.gitlab.CoverageReport": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "custom": {
          "link": "https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscoverage_report"
        },
        "stability": "experimental",
        "summary": "Code coverage report interface."
      },
      "fqn": "projen.gitlab.CoverageReport",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 123
      },
      "name": "CoverageReport",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 124
          },
          "name": "coverageFormat",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 125
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:CoverageReport"
    },
    "projen.gitlab.Default": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Jobs that do not define one or more of the listed keywords use the value defined in the default section.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#default",
        "stability": "experimental",
        "summary": "Default settings for the CI Configuration."
      },
      "fqn": "projen.gitlab.Default",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 70
      },
      "name": "Default",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 72
          },
          "name": "afterScript",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 74
          },
          "name": "artifacts",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Artifacts"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 76
          },
          "name": "beforeScript",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 78
          },
          "name": "cache",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Cache"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Specifies the default ID tokens (JSON Web Tokens) that are used for CI/CD authentication to use globally for all jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 80
          },
          "name": "idTokens",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.IDToken"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 82
          },
          "name": "image",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Image"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 84
          },
          "name": "interruptible",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 86
          },
          "name": "retry",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Retry"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 88
          },
          "name": "services",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Service"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 90
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 92
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Default"
    },
    "projen.gitlab.DefaultElement": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.gitlab.DefaultElement",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 456
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "AFTER_SCRIPT"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ARTIFACTS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "BEFORE_SCRIPT"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "CACHE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "IMAGE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "INTERRUPTIBLE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "RETRY"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "SERVICES"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "TAGS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "TIMEOUT"
        }
      ],
      "name": "DefaultElement",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:DefaultElement"
    },
    "projen.gitlab.DeploymentTier": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Explicitly specifies the tier of the deployment environment if non-standard environment name is used."
      },
      "fqn": "projen.gitlab.DeploymentTier",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 405
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEVELOPMENT"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "OTHER"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PRODUCTION"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "STAGING"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "TESTING"
        }
      ],
      "name": "DeploymentTier",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:DeploymentTier"
    },
    "projen.gitlab.Engine": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The engine configuration for a secret."
      },
      "fqn": "projen.gitlab.Engine",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 564
      },
      "name": "Engine",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Name of the secrets engine."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 566
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to the secrets engine."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 568
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Engine"
    },
    "projen.gitlab.Environment": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "The environment that a job deploys to."
      },
      "fqn": "projen.gitlab.Environment",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 373
      },
      "name": "Environment",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the environment, e.g. 'qa', 'staging', 'production'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 383
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "'start' (default) indicates the job will start the deployment. 'prepare' indicates this will not affect the deployment. 'stop' indicates this will stop the deployment.",
            "stability": "experimental",
            "summary": "Specifies what this job will do."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 375
          },
          "name": "action",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Action"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'.",
            "stability": "experimental",
            "summary": "The amount of time it should take before Gitlab will automatically stop the environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 377
          },
          "name": "autoStopIn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Explicitly specifies the tier of the deployment environment if non-standard environment name is used."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 379
          },
          "name": "deploymentTier",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.DeploymentTier"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This is currently not supported for kubernetes clusters that are managed by Gitlab.",
            "stability": "experimental",
            "summary": "Used to configure the kubernetes deployment for this environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 381
          },
          "name": "kubernetes",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.KubernetesConfig"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of a job to execute when the environment is about to be stopped."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 385
          },
          "name": "onStop",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "When set, this will expose buttons in various places for the current environment in Gitlab, that will take you to the defined URL."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 387
          },
          "name": "url",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Environment"
    },
    "projen.gitlab.Filter": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Filtering options for when a job will run."
      },
      "fqn": "projen.gitlab.Filter",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 425
      },
      "name": "Filter",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Filter job creation based on files that were modified in a git push."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 427
          },
          "name": "changes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Filter job based on if Kubernetes integration is active."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 429
          },
          "name": "kubernetes",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.KubernetesEnum"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Control when to add jobs to a pipeline based on branch names or pipeline types."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 431
          },
          "name": "refs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Read more about variable expressions: https://docs.gitlab.com/ee/ci/variables/README.html#variables-expressions",
            "stability": "experimental",
            "summary": "Filter job by checking comparing values of environment variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 433
          },
          "name": "variables",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Filter"
    },
    "projen.gitlab.GitlabConfiguration": {
      "assembly": "projen",
      "base": "projen.gitlab.CiConfiguration",
      "docs": {
        "stability": "experimental",
        "summary": "A GitLab CI for the main `.gitlab-ci.yml` file."
      },
      "fqn": "projen.gitlab.GitlabConfiguration",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/gitlab/gitlab-configuration.ts",
          "line": 11
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.gitlab.CiConfigurationOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/gitlab/gitlab-configuration.ts",
        "line": 9
      },
      "methods": [
        {
          "docs": {
            "remarks": "Additionally adds their stages to the main CI if they are not already present.\nYou can futher customize nested templates through the `nestedTemplates` property.\nE.g. gitlabConfig.nestedTemplates['templateName']?.addStages('stageName')",
            "stability": "experimental",
            "summary": "Creates and adds nested templates to the includes of the main CI."
          },
          "locationInModule": {
            "filename": "src/gitlab/gitlab-configuration.ts",
            "line": 22
          },
          "name": "createNestedTemplates",
          "parameters": [
            {
              "docs": {
                "summary": "a record the names and configuraitons of the templates."
              },
              "name": "config",
              "type": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.gitlab.CiConfigurationOptions"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        }
      ],
      "name": "GitlabConfiguration",
      "namespace": "gitlab",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/gitlab-configuration.ts",
            "line": 10
          },
          "name": "nestedTemplates",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.NestedConfiguration"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/gitlab-configuration:GitlabConfiguration"
    },
    "projen.gitlab.IDToken": {
      "assembly": "projen",
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#id_tokens",
        "stability": "experimental",
        "summary": "id_tokens Definition."
      },
      "fqn": "projen.gitlab.IDToken",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 176
      },
      "name": "IDToken",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The required aud sub-keyword is used to configure the aud claim for the JWT."
          },
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 178
          },
          "name": "aud",
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:IDToken"
    },
    "projen.gitlab.Image": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Job configuration\ntakes precedence over global setting. Requires a certain kind of Gitlab runner executor.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#image",
        "stability": "experimental",
        "summary": "Specifies the docker image to use for the job or globally for all jobs."
      },
      "fqn": "projen.gitlab.Image",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 186
      },
      "name": "Image",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "It should contain the Registry part if needed.",
            "stability": "experimental",
            "summary": "Full name of the image that should be used."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 190
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array.",
            "stability": "experimental",
            "summary": "Command or script that should be executed as the container's entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 188
          },
          "name": "entrypoint",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Image"
    },
    "projen.gitlab.Include": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#include",
        "stability": "experimental",
        "summary": "An included YAML file."
      },
      "fqn": "projen.gitlab.Include",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 237
      },
      "name": "Include",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use `file` in combination with `project` only.",
            "stability": "experimental",
            "summary": "Files from another private project on the same GitLab instance."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 243
          },
          "name": "file",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "The file must be on the same branch, and does not work across git submodules.",
            "stability": "experimental",
            "summary": "Relative path from local repository root (`/`) to the `yaml`/`yml` file template."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 239
          },
          "name": "local",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to the project, e.g. `group/project`, or `group/sub-group/project`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 245
          },
          "name": "project",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Branch/Tag/Commit-hash for the target project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 247
          },
          "name": "ref",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "URL to a `yaml`/`yml` template file using HTTP/HTTPS."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 251
          },
          "name": "remote",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 241
          },
          "name": "rules",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.IncludeRule"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 249
          },
          "name": "template",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Include"
    },
    "projen.gitlab.IncludeRule": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/includes.html#use-rules-with-include",
        "stability": "experimental",
        "summary": "Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job."
      },
      "fqn": "projen.gitlab.IncludeRule",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 259
      },
      "name": "IncludeRule",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 261
          },
          "name": "allowFailure",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "boolean"
                },
                {
                  "fqn": "projen.gitlab.AllowFailure"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 263
          },
          "name": "changes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 265
          },
          "name": "exists",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 267
          },
          "name": "if",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 269
          },
          "name": "needs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 271
          },
          "name": "startIn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 273
          },
          "name": "variables",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 275
          },
          "name": "when",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.JobWhen"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:IncludeRule"
    },
    "projen.gitlab.Inherit": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Boolean values control\ninheritance of all default: or variables: keywords. To inherit only a subset of default:\nor variables: keywords, specify what you wish to inherit. Anything not listed is not\ninherited.",
        "stability": "experimental",
        "summary": "Controls inheritance of globally-defined defaults and variables."
      },
      "fqn": "projen.gitlab.Inherit",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 449
      },
      "name": "Inherit",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Or subset of inherited defaults",
            "stability": "experimental",
            "summary": "Whether to inherit all globally-defined defaults or not."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 451
          },
          "name": "default",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "boolean"
                },
                {
                  "collection": {
                    "elementtype": {
                      "fqn": "projen.gitlab.DefaultElement"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Or subset of inherited variables",
            "stability": "experimental",
            "summary": "Whether to inherit all globally-defined variables or not."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 453
          },
          "name": "variables",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "boolean"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Inherit"
    },
    "projen.gitlab.Job": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/jobs/",
        "stability": "experimental",
        "summary": "Jobs are the most fundamental element of a .gitlab-ci.yml file."
      },
      "fqn": "projen.gitlab.Job",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 305
      },
      "name": "Job",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 307
          },
          "name": "afterScript",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Whether to allow the pipeline to continue running on job failure (Default: false)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 309
          },
          "name": "allowFailure",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "boolean"
                },
                {
                  "fqn": "projen.gitlab.AllowFailure"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 311
          },
          "name": "artifacts",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Artifacts"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 313
          },
          "name": "beforeScript",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 315
          },
          "name": "cache",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Cache"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Example: '/Code coverage: \\d+\\.\\d+/'",
            "stability": "experimental",
            "summary": "Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 317
          },
          "name": "coverage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.",
            "stability": "experimental",
            "summary": "Specify a list of job names from earlier stages from which artifacts should be loaded."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 319
          },
          "name": "dependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Environment can have a name and URL attached to it, and will be displayed under /environments under the project.",
            "stability": "experimental",
            "summary": "Used to associate environment metadata with a deploy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 321
          },
          "name": "environment",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "fqn": "projen.gitlab.Environment"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Job will run *except* for when these filtering options match."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 323
          },
          "name": "except",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                },
                {
                  "fqn": "projen.gitlab.Filter"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of one or more jobs to inherit configuration from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 325
          },
          "name": "extends",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configurable ID tokens (JSON Web Tokens) that are used for CI/CD authentication."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 327
          },
          "name": "idTokens",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.IDToken"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 329
          },
          "name": "image",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Image"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Boolean values control inheritance of all default: or variables: keywords. To inherit only a subset of default: or variables: keywords, specify what you wish to inherit. Anything not listed is not inherited.",
            "stability": "experimental",
            "summary": "Controls inheritance of globally-defined defaults and variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 331
          },
          "name": "inherit",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Inherit"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 333
          },
          "name": "interruptible",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The list of jobs in previous stages whose sole completion is needed to start the current job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 335
          },
          "name": "needs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "fqn": "projen.gitlab.Need"
                    }
                  ]
                }
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Job will run *only* when these filtering options match."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 337
          },
          "name": "only",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                },
                {
                  "fqn": "projen.gitlab.Filter"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parallel will split up a single job into several, and provide `CI_NODE_INDEX` and `CI_NODE_TOTAL` environment variables for the running jobs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 339
          },
          "name": "parallel",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "number"
                },
                {
                  "fqn": "projen.gitlab.Parallel"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Indicates that the job creates a Release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 341
          },
          "name": "release",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Release"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Can be used to ensure that the Runner will not run certain jobs simultaneously.",
            "stability": "experimental",
            "summary": "Limit job concurrency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 343
          },
          "name": "resourceGroup",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 345
          },
          "name": "retry",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Retry"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 347
          },
          "name": "rules",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.IncludeRule"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "The only required property of jobs. Be careful with special characters (e.g. `:`, `{`, `}`, `&`) and use single or double quotes to avoid issues.",
            "stability": "experimental",
            "summary": "Shell scripts executed by the Runner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 349
          },
          "name": "script",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "CI/CD secrets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 351
          },
          "name": "secrets",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.gitlab.Secret"
                  },
                  "kind": "map"
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 353
          },
          "name": "services",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.Service"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Define what stage the job will run in."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 355
          },
          "name": "stage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 357
          },
          "name": "startIn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 359
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 361
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "When a job created from trigger definition is started by GitLab, a downstream pipeline gets created. Read more: https://docs.gitlab.com/ee/ci/yaml/README.html#trigger",
            "stability": "experimental",
            "summary": "Trigger allows you to define downstream pipeline trigger."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 363
          },
          "name": "trigger",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "fqn": "projen.gitlab.Trigger"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configurable values that are passed to the Job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 365
          },
          "name": "variables",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Defaults to 'on_success'.",
            "stability": "experimental",
            "summary": "Describes the conditions for when to run the job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 367
          },
          "name": "when",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.JobWhen"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Job"
    },
    "projen.gitlab.JobWhen": {
      "assembly": "projen",
      "docs": {
        "remarks": "Defaults to 'on_success'.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#when",
        "stability": "experimental",
        "summary": "Describes the conditions for when to run the job."
      },
      "fqn": "projen.gitlab.JobWhen",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 292
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DELAYED"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "MANUAL"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NEVER"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ON_FAILURE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ON_SUCCESS"
        }
      ],
      "name": "JobWhen",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:JobWhen"
    },
    "projen.gitlab.KubernetesConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "This is currently not\nsupported for kubernetes clusters that are managed by Gitlab.",
        "stability": "experimental",
        "summary": "Used to configure the kubernetes deployment for this environment."
      },
      "fqn": "projen.gitlab.KubernetesConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 417
      },
      "name": "KubernetesConfig",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The kubernetes namespace where this environment should be deployed to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 419
          },
          "name": "namespace",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:KubernetesConfig"
    },
    "projen.gitlab.KubernetesEnum": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Filter job based on if Kubernetes integration is active."
      },
      "fqn": "projen.gitlab.KubernetesEnum",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 439
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ACTIVE"
        }
      ],
      "name": "KubernetesEnum",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:KubernetesEnum"
    },
    "projen.gitlab.Link": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Link configuration for an asset."
      },
      "fqn": "projen.gitlab.Link",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 519
      },
      "name": "Link",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the link."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 525
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The URL to download a file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 527
          },
          "name": "url",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The redirect link to the url."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 521
          },
          "name": "filepath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The content kind of what users can download via url."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 523
          },
          "name": "linkType",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.LinkType"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Link"
    },
    "projen.gitlab.LinkType": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The content kind of what users can download via url."
      },
      "fqn": "projen.gitlab.LinkType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 533
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "IMAGE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "OTHER"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PACKAGE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "RUNBOOK"
        }
      ],
      "name": "LinkType",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:LinkType"
    },
    "projen.gitlab.Need": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A jobs in a previous stage whose sole completion is needed to start the current job."
      },
      "fqn": "projen.gitlab.Need",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 472
      },
      "name": "Need",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 474
          },
          "name": "job",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 473
          },
          "name": "artifacts",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 475
          },
          "name": "optional",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 476
          },
          "name": "pipeline",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 477
          },
          "name": "project",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 478
          },
          "name": "ref",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Need"
    },
    "projen.gitlab.NestedConfiguration": {
      "assembly": "projen",
      "base": "projen.gitlab.CiConfiguration",
      "docs": {
        "stability": "experimental",
        "summary": "A GitLab CI for templates that are created and included in the `.gitlab-ci.yml` file."
      },
      "fqn": "projen.gitlab.NestedConfiguration",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/gitlab/nested-configuration.ts",
          "line": 11
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "parent",
            "type": {
              "fqn": "projen.gitlab.GitlabConfiguration"
            }
          },
          {
            "docs": {
              "summary": "The name of the configuration."
            },
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.gitlab.CiConfigurationOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/gitlab/nested-configuration.ts",
        "line": 9
      },
      "name": "NestedConfiguration",
      "namespace": "gitlab",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/nested-configuration.ts",
            "line": 10
          },
          "name": "parent",
          "type": {
            "fqn": "projen.gitlab.GitlabConfiguration"
          }
        }
      ],
      "symbolId": "src/gitlab/nested-configuration:NestedConfiguration"
    },
    "projen.gitlab.Parallel": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Used to run a job multiple times in parallel in a single pipeline."
      },
      "fqn": "projen.gitlab.Parallel",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 484
      },
      "name": "Parallel",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Defines different variables for jobs that are running in parallel."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 486
          },
          "name": "matrix",
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "collection": {
                      "elementtype": {
                        "primitive": "any"
                      },
                      "kind": "array"
                    }
                  },
                  "kind": "map"
                }
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Parallel"
    },
    "projen.gitlab.PullPolicy": {
      "assembly": "projen",
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#servicepull_policy",
        "stability": "experimental",
        "summary": "Describes the conditions for when to pull an image."
      },
      "fqn": "projen.gitlab.PullPolicy",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 227
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NEVER"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "IF_NOT_PRESENT"
        }
      ],
      "name": "PullPolicy",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:PullPolicy"
    },
    "projen.gitlab.Release": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Indicates that the job creates a Release."
      },
      "fqn": "projen.gitlab.Release",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 492
      },
      "name": "Release",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Specifies the longer description of the Release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 495
          },
          "name": "description",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "It can refer to an existing Git tag or can be specified by the user.",
            "stability": "experimental",
            "summary": "The tag_name must be specified."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 505
          },
          "name": "tagName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 493
          },
          "name": "assets",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Assets"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The title of each milestone the release is associated with."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 497
          },
          "name": "milestones",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If omitted, it is populated with the value of release: tag_name.",
            "stability": "experimental",
            "summary": "The Release name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 499
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "ref can be a commit SHA, another tag name, or a branch name.",
            "stability": "experimental",
            "summary": "If the release: tag_name doesn’t exist yet, the release is created from ref."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 501
          },
          "name": "ref",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.",
            "stability": "experimental",
            "summary": "The date and time when the release is ready."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 503
          },
          "name": "releasedAt",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Release"
    },
    "projen.gitlab.Reports": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#artifactsreports",
        "stability": "experimental",
        "summary": "Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests."
      },
      "fqn": "projen.gitlab.Reports",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 133
      },
      "name": "Reports",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "deprecated": "per {@link https://docs.gitlab.com/ee/update/deprecations.html#artifactsreportscobertura-keyword} use {@link coverageReport } instead",
            "stability": "deprecated",
            "summary": "Path for file(s) that should be parsed as Cobertura XML coverage report."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 137
          },
          "name": "cobertura",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with code quality report(s) (such as Code Climate)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 139
          },
          "name": "codequality",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with Container scanning vulnerabilities report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 141
          },
          "name": "containerScanning",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Code coverage report information."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 143
          },
          "name": "coverageReport",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.CoverageReport"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with DAST vulnerabilities report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 145
          },
          "name": "dast",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with Dependency scanning vulnerabilities report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 147
          },
          "name": "dependencyScanning",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files containing runtime-created variables for this job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 149
          },
          "name": "dotenv",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path for file(s) that should be parsed as JUnit XML result."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 151
          },
          "name": "junit",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Deprecated in 12.8: Path to file or list of files with license report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 153
          },
          "name": "licenseManagement",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with license report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 155
          },
          "name": "licenseScanning",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files containing code intelligence (Language Server Index Format)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 157
          },
          "name": "lsif",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with custom metrics report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 159
          },
          "name": "metrics",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with performance metrics report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 161
          },
          "name": "performance",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with requirements report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 163
          },
          "name": "requirements",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with SAST vulnerabilities report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 165
          },
          "name": "sast",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with secret detection report(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 167
          },
          "name": "secretDetection",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to file or list of files with terraform plan(s)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 169
          },
          "name": "terraform",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Reports"
    },
    "projen.gitlab.Retry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "If not defined, defaults to 0 and jobs do not retry.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#retry",
        "stability": "experimental",
        "summary": "How many times a job is retried if it fails."
      },
      "fqn": "projen.gitlab.Retry",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 197
      },
      "name": "Retry",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "0 (default), 1, or 2."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 199
          },
          "name": "max",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Either a single or array of error types to trigger job retry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 201
          },
          "name": "when",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Retry"
    },
    "projen.gitlab.Secret": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "A CI/CD secret."
      },
      "fqn": "projen.gitlab.Secret",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 543
      },
      "name": "Secret",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 545
          },
          "name": "vault",
          "type": {
            "fqn": "projen.gitlab.VaultConfig"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Secret"
    },
    "projen.gitlab.Service": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "custom": {
          "Default": "image keyword."
        },
        "remarks": "The service image is linked to the image specified in the",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#services",
        "stability": "experimental",
        "summary": "Used to specify an additional Docker image to run scripts in."
      },
      "fqn": "projen.gitlab.Service",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 208
      },
      "name": "Service",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "It should contain the Registry part if needed.",
            "stability": "experimental",
            "summary": "Full name of the image that should be used."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 216
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Read Accessing the services for more information.",
            "stability": "experimental",
            "summary": "Additional alias that can be used to access the service from the job's container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 210
          },
          "name": "alias",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "It will be translated to arguments passed to Docker after the image's name. The syntax is similar to Dockerfile's CMD directive, where each shell token is a separate string in the array.",
            "stability": "experimental",
            "summary": "Command or script that should be used as the container's command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 212
          },
          "name": "command",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array.",
            "stability": "experimental",
            "summary": "Command or script that should be executed as the container's entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 214
          },
          "name": "entrypoint",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The pull policy that the runner uses to fetch the Docker image."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 218
          },
          "name": "pullPolicy",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.PullPolicy"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional environment variables that are passed exclusively to the service.."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 220
          },
          "name": "variables",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Service"
    },
    "projen.gitlab.Strategy": {
      "assembly": "projen",
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#triggerstrategy",
        "stability": "experimental",
        "summary": "You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend."
      },
      "fqn": "projen.gitlab.Strategy",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 614
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEPEND"
        }
      ],
      "name": "Strategy",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:Strategy"
    },
    "projen.gitlab.Trigger": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "Read more:",
        "see": "https://docs.gitlab.com/ee/ci/yaml/README.html#trigger-syntax-for-child-pipeline",
        "stability": "experimental",
        "summary": "Trigger a multi-project or a child pipeline."
      },
      "fqn": "projen.gitlab.Trigger",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 576
      },
      "name": "Trigger",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The branch name that a downstream pipeline will use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 578
          },
          "name": "branch",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of local files or artifacts from other jobs to define the pipeline."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 584
          },
          "name": "include",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.TriggerInclude"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to the project, e.g. `group/project`, or `group/sub-group/project`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 580
          },
          "name": "project",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 582
          },
          "name": "strategy",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.Strategy"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Trigger"
    },
    "projen.gitlab.TriggerInclude": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#triggerinclude",
        "stability": "experimental",
        "summary": "References a local file or an artifact from another job to define the pipeline configuration."
      },
      "fqn": "projen.gitlab.TriggerInclude",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 592
      },
      "name": "TriggerInclude",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Relative path to the generated YAML file which is extracted from the artifacts and used as the configuration for triggering the child pipeline."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 598
          },
          "name": "artifact",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Relative path from repository root (`/`) to the pipeline configuration YAML file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 602
          },
          "name": "file",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Job name which generates the artifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 600
          },
          "name": "job",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 594
          },
          "name": "local",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to another private project under the same GitLab instance, like `group/project` or `group/sub-group/project`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 604
          },
          "name": "project",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Branch/Tag/Commit hash for the target project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 606
          },
          "name": "ref",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Name of the template YAML file to use in the pipeline configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 596
          },
          "name": "template",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:TriggerInclude"
    },
    "projen.gitlab.VariableConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#variables",
        "stability": "experimental",
        "summary": "Explains what the global variable is used for, what the acceptable values are."
      },
      "fqn": "projen.gitlab.VariableConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 622
      },
      "name": "VariableConfig",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be used with value.",
            "stability": "experimental",
            "summary": "Define a global variable that is prefilled when running a pipeline manually."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 624
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The variable value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 626
          },
          "name": "value",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:VariableConfig"
    },
    "projen.gitlab.VaultConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://www.vaultproject.io/",
        "stability": "experimental",
        "summary": "Specification for a secret provided by a HashiCorp Vault."
      },
      "fqn": "projen.gitlab.VaultConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 552
      },
      "name": "VaultConfig",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 554
          },
          "name": "engine",
          "type": {
            "fqn": "projen.gitlab.Engine"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 556
          },
          "name": "field",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Path to the secret."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 558
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:VaultConfig"
    },
    "projen.gitlab.Workflow": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#workflow",
        "stability": "experimental",
        "summary": "Used to control pipeline behavior."
      },
      "fqn": "projen.gitlab.Workflow",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 633
      },
      "name": "Workflow",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "You can use name to define a name for pipelines."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 635
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Used to control whether or not a whole pipeline is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 637
          },
          "name": "rules",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.gitlab.WorkflowRule"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:Workflow"
    },
    "projen.gitlab.WorkflowRule": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.gitlab.com/ee/ci/yaml/#workflowrules",
        "stability": "experimental",
        "summary": "Used to control whether or not a whole pipeline is created."
      },
      "fqn": "projen.gitlab.WorkflowRule",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 644
      },
      "name": "WorkflowRule",
      "namespace": "gitlab",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 646
          },
          "name": "changes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 648
          },
          "name": "exists",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 650
          },
          "name": "if",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 652
          },
          "name": "variables",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "number"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/gitlab/configuration-model.ts",
            "line": 654
          },
          "name": "when",
          "optional": true,
          "type": {
            "fqn": "projen.gitlab.WorkflowWhen"
          }
        }
      ],
      "symbolId": "src/gitlab/configuration-model:WorkflowRule"
    },
    "projen.gitlab.WorkflowWhen": {
      "assembly": "projen",
      "docs": {
        "remarks": "Defaults to 'on_success'.\nThe value can only be 'always' or 'never' when used with workflow.",
        "see": "https://docs.gitlab.com/ee/ci/yaml/#workflowrules",
        "stability": "experimental",
        "summary": "Describes the conditions for when to run the job."
      },
      "fqn": "projen.gitlab.WorkflowWhen",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/gitlab/configuration-model.ts",
        "line": 662
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NEVER"
        }
      ],
      "name": "WorkflowWhen",
      "namespace": "gitlab",
      "symbolId": "src/gitlab/configuration-model:WorkflowWhen"
    },
    "projen.java.ChecksumPolicy": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.java.ChecksumPolicy",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 199
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "IGNORE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "FAIL"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "WARN"
        }
      ],
      "name": "ChecksumPolicy",
      "namespace": "java",
      "symbolId": "src/java/pom:ChecksumPolicy"
    },
    "projen.java.JavaProject": {
      "assembly": "projen",
      "base": "projen.github.GitHubProject",
      "docs": {
        "custom": {
          "pjid": "java"
        },
        "stability": "experimental",
        "summary": "Java project."
      },
      "fqn": "projen.java.JavaProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/java-project.ts",
          "line": 145
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.java.JavaProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/java-project.ts",
        "line": 114
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a runtime dependency."
          },
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 220
          },
          "name": "addDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<groupId>/<artifactId>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The plug in is also added as a BUILD dep to the project.",
            "stability": "experimental",
            "summary": "Adds a build plugin to the pom."
          },
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 241
          },
          "name": "addPlugin",
          "parameters": [
            {
              "docs": {
                "summary": "dependency spec (`group/artifact@version`)."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "plugin options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.java.PluginOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Dependency"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a test dependency."
          },
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 229
          },
          "name": "addTestDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<groupId>/<artifactId>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "JavaProject",
      "namespace": "java",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Compile component."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 133
          },
          "name": "compile",
          "type": {
            "fqn": "projen.java.MavenCompile"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maven artifact output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 143
          },
          "name": "distdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Packaging component."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 128
          },
          "name": "packaging",
          "type": {
            "fqn": "projen.java.MavenPackaging"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "API for managing `pom.xml`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 118
          },
          "name": "pom",
          "type": {
            "fqn": "projen.java.Pom"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "JUnit component."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 123
          },
          "name": "junit",
          "optional": true,
          "type": {
            "fqn": "projen.java.Junit"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Projenrc component."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 138
          },
          "name": "projenrc",
          "optional": true,
          "type": {
            "fqn": "projen.java.Projenrc"
          }
        }
      ],
      "symbolId": "src/java/java-project:JavaProject"
    },
    "projen.java.JavaProjectCommonOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `JavaProject`."
      },
      "fqn": "projen.java.JavaProjectCommonOptions",
      "interfaces": [
        "projen.github.GitHubProjectOptions",
        "projen.java.PomOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/java-project.ts",
        "line": 13
      },
      "name": "JavaProjectCommonOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "stability": "experimental",
            "summary": "Compile options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 73
          },
          "name": "compileOptions",
          "optional": true,
          "type": {
            "fqn": "projen.java.MavenCompileOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "[]",
            "remarks": "Dependencies use the format: `<groupId>/<artifactId>@<semver>`\n\nAdditional dependencies can be added via `project.addDependency()`.",
            "stability": "experimental",
            "summary": "List of runtime dependencies for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 35
          },
          "name": "deps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"dist/java\"",
            "stability": "experimental",
            "summary": "Final artifact output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 21
          },
          "name": "distdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include junit tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 55
          },
          "name": "junit",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "stability": "experimental",
            "summary": "junit options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 61
          },
          "name": "junitOptions",
          "optional": true,
          "type": {
            "fqn": "projen.java.JunitOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "stability": "experimental",
            "summary": "Packaging options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 67
          },
          "name": "packagingOptions",
          "optional": true,
          "type": {
            "fqn": "projen.java.MavenPackagingOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This will install `projen` as a java dependency and will add a `synth` task which\nwill compile & execute `main()` from `src/main/java/projenrc.java`.",
            "stability": "experimental",
            "summary": "Use projenrc in java."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 83
          },
          "name": "projenrcJava",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options related to projenrc in java."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 89
          },
          "name": "projenrcJavaOptions",
          "optional": true,
          "type": {
            "fqn": "projen.java.ProjenrcOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "[]",
            "remarks": "Dependencies use the format: `<groupId>/<artifactId>@<semver>`\n\nAdditional dependencies can be added via `project.addTestDependency()`.",
            "stability": "experimental",
            "summary": "List of test dependencies for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 47
          },
          "name": "testDeps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/java/java-project:JavaProjectCommonOptions"
    },
    "projen.java.JavaProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `JavaProject`."
      },
      "fqn": "projen.java.JavaProjectOptions",
      "interfaces": [
        "projen.java.JavaProjectCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/java-project.ts",
        "line": 95
      },
      "name": "JavaProjectOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include sample code and test if the relevant directories don't exist."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 100
          },
          "name": "sample",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"org.acme\"",
            "stability": "experimental",
            "summary": "The java package to use for the code sample."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/java-project.ts",
            "line": 106
          },
          "name": "sampleJavaPackage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/java-project:JavaProjectOptions"
    },
    "projen.java.Junit": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Implements JUnit-based testing."
      },
      "fqn": "projen.java.Junit",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/junit.ts",
          "line": 36
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.java.JunitOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/junit.ts",
        "line": 35
      },
      "name": "Junit",
      "namespace": "java",
      "symbolId": "src/java/junit:Junit"
    },
    "projen.java.JunitOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Junit`."
      },
      "fqn": "projen.java.JunitOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/junit.ts",
        "line": 12
      },
      "name": "JunitOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Java pom."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/junit.ts",
            "line": 16
          },
          "name": "pom",
          "type": {
            "fqn": "projen.java.Pom"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"org.acme\"",
            "stability": "experimental",
            "summary": "Java package for test sample."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/junit.ts",
            "line": 29
          },
          "name": "sampleJavaPackage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"5.7.0\"",
            "stability": "experimental",
            "summary": "Junit version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/junit.ts",
            "line": 23
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/junit:JunitOptions"
    },
    "projen.java.MavenCompile": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Adds the maven-compiler plugin to a POM file and the `compile` task."
      },
      "fqn": "projen.java.MavenCompile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/maven-compile.ts",
          "line": 28
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "pom",
            "type": {
              "fqn": "projen.java.Pom"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.java.MavenCompileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/maven-compile.ts",
        "line": 27
      },
      "name": "MavenCompile",
      "namespace": "java",
      "symbolId": "src/java/maven-compile:MavenCompile"
    },
    "projen.java.MavenCompileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `MavenCompile`."
      },
      "fqn": "projen.java.MavenCompileOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/maven-compile.ts",
        "line": 8
      },
      "name": "MavenCompileOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"1.8\"",
            "stability": "experimental",
            "summary": "Source language version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-compile.ts",
            "line": 14
          },
          "name": "source",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"1.8\"",
            "stability": "experimental",
            "summary": "Target JVM version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-compile.ts",
            "line": 21
          },
          "name": "target",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/maven-compile:MavenCompileOptions"
    },
    "projen.java.MavenPackaging": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Configures a maven project to produce a .jar archive with sources and javadocs."
      },
      "fqn": "projen.java.MavenPackaging",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/maven-packaging.ts",
          "line": 43
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "pom",
            "type": {
              "fqn": "projen.java.Pom"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.java.MavenPackagingOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/maven-packaging.ts",
        "line": 37
      },
      "name": "MavenPackaging",
      "namespace": "java",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory containing the package output, relative to the project outdir."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-packaging.ts",
            "line": 41
          },
          "name": "distdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/maven-packaging:MavenPackaging"
    },
    "projen.java.MavenPackagingOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `MavenPackage`."
      },
      "fqn": "projen.java.MavenPackagingOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/maven-packaging.ts",
        "line": 8
      },
      "name": "MavenPackagingOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"dist/java\"",
            "stability": "experimental",
            "summary": "Where to place the package output?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-packaging.ts",
            "line": 19
          },
          "name": "distdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include javadocs jar in package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-packaging.ts",
            "line": 25
          },
          "name": "javadocs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Exclude source files from docs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-packaging.ts",
            "line": 31
          },
          "name": "javadocsExclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include sources jar in package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-packaging.ts",
            "line": 13
          },
          "name": "sources",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/java/maven-packaging:MavenPackagingOptions"
    },
    "projen.java.MavenRepository": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://maven.apache.org/guides/introduction/introduction-to-repositories.html",
        "stability": "experimental",
        "summary": "Represents a Maven repository."
      },
      "fqn": "projen.java.MavenRepository",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 135
      },
      "name": "MavenRepository",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The identifier for the repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 139
          },
          "name": "id",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The url of the repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 143
          },
          "name": "url",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The layout of the repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 151
          },
          "name": "layout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 147
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Repository Policy for Releases."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 159
          },
          "name": "releases",
          "optional": true,
          "type": {
            "fqn": "projen.java.MavenRepositoryPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Repository Policy for Snapshots."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 155
          },
          "name": "snapshots",
          "optional": true,
          "type": {
            "fqn": "projen.java.MavenRepositoryPolicy"
          }
        }
      ],
      "symbolId": "src/java/pom:MavenRepository"
    },
    "projen.java.MavenRepositoryPolicy": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://maven.apache.org/settings.html#repositories",
        "stability": "experimental",
        "summary": "Represents a Maven Repository Policy."
      },
      "fqn": "projen.java.MavenRepositoryPolicy",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 166
      },
      "name": "MavenRepositoryPolicy",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Checksum Policy When Maven deploys files to the repository, it also deploys corresponding checksum files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 183
          },
          "name": "checksumPolicy",
          "optional": true,
          "type": {
            "fqn": "projen.java.ChecksumPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 170
          },
          "name": "enabled",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "UpdatePolicy.DAILY",
            "remarks": "Maven will compare the local POM's timestamp (stored in a repository's maven-metadata file) to the remote.",
            "stability": "experimental",
            "summary": "Update Policy This element specifies how often updates should attempt to occur."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 177
          },
          "name": "updatePolicy",
          "optional": true,
          "type": {
            "fqn": "projen.java.UpdatePolicy"
          }
        }
      ],
      "symbolId": "src/java/pom:MavenRepositoryPolicy"
    },
    "projen.java.MavenSample": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Java code sample."
      },
      "fqn": "projen.java.MavenSample",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/maven-sample.ts",
          "line": 17
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.java.MavenSampleOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/maven-sample.ts",
        "line": 16
      },
      "name": "MavenSample",
      "namespace": "java",
      "symbolId": "src/java/maven-sample:MavenSample"
    },
    "projen.java.MavenSampleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.java.MavenSampleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/maven-sample.ts",
        "line": 6
      },
      "name": "MavenSampleOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Project root java package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/maven-sample.ts",
            "line": 10
          },
          "name": "package",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/maven-sample:MavenSampleOptions"
    },
    "projen.java.ParentPom": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.java.ParentPom",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 112
      },
      "name": "ParentPom",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parent Pom Artifact ID."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 120
          },
          "name": "artifactId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parent Pom Group ID."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 116
          },
          "name": "groupId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parent Pom Relative path from the current pom."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 128
          },
          "name": "relativePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Parent Pom Version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 124
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/pom:ParentPom"
    },
    "projen.java.PluginExecution": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Plugin execution definition."
      },
      "fqn": "projen.java.PluginExecution",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 452
      },
      "name": "PluginExecution",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Which Maven goals this plugin should be associated with."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 461
          },
          "name": "goals",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The ID."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 456
          },
          "name": "id",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Execution key/value configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 472
          },
          "name": "configuration",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The phase in which the plugin should execute."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 466
          },
          "name": "phase",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/pom:PluginExecution"
    },
    "projen.java.PluginOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for Maven plugins."
      },
      "fqn": "projen.java.PluginOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 426
      },
      "name": "PluginOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "experimental",
            "summary": "Plugin key/value configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 431
          },
          "name": "configuration",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Dependencies are in `<groupId>/<artifactId>@<semver>` format.",
            "stability": "experimental",
            "summary": "You could configure the dependencies for the plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 446
          },
          "name": "dependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Plugin executions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 437
          },
          "name": "executions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.java.PluginExecution"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/java/pom:PluginOptions"
    },
    "projen.java.Pom": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "It is\nan XML file that contains information about the project and configuration\ndetails used by Maven to build the project.",
        "stability": "experimental",
        "summary": "A Project Object Model or POM is the fundamental unit of work in Maven."
      },
      "fqn": "projen.java.Pom",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/pom.ts",
          "line": 262
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.java.PomOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 210
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a runtime dependency."
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 292
          },
          "name": "addDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<groupId>/<artifactId>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The plug in is also added as a BUILD dep to the project.",
            "stability": "experimental",
            "summary": "Adds a build plugin to the pom."
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 313
          },
          "name": "addPlugin",
          "parameters": [
            {
              "docs": {
                "summary": "dependency spec (`group/artifact@version`)."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "plugin options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.java.PluginOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Dependency"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 332
          },
          "name": "addPluginRepository",
          "parameters": [
            {
              "name": "repository",
              "type": {
                "fqn": "projen.java.MavenRepository"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a key/value property to the pom."
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 283
          },
          "name": "addProperty",
          "parameters": [
            {
              "docs": {
                "summary": "the key."
              },
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "the value."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a repository to the pom."
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 324
          },
          "name": "addRepository",
          "parameters": [
            {
              "docs": {
                "summary": "the repository to add."
              },
              "name": "repository",
              "type": {
                "fqn": "projen.java.MavenRepository"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a test dependency."
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 301
          },
          "name": "addTestDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<groupId>/<artifactId>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "Pom",
      "namespace": "java",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maven artifact ID."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 224
          },
          "name": "artifactId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the pom file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 214
          },
          "name": "fileName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maven group ID."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 219
          },
          "name": "groupId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maven packaging format."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 234
          },
          "name": "packaging",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 229
          },
          "name": "version",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project description."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 244
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project display name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 239
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project URL."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 249
          },
          "name": "url",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/pom:Pom"
    },
    "projen.java.PomOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Pom`."
      },
      "fqn": "projen.java.PomOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 22
      },
      "name": "PomOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "\"my-app\"",
            "remarks": "Although\nthe groupId is important, people within the group will rarely mention the\ngroupId in discussion (they are often all be the same ID, such as the\nMojoHaus project groupId: org.codehaus.mojo). It, along with the groupId,\ncreates a key that separates this project from every other project in the\nworld (at least, it should :) ). Along with the groupId, the artifactId\nfully defines the artifact's living quarters within the repository. In the\ncase of the above project, my-project lives in\n$M2_REPO/org/codehaus/mojo/my-project.",
            "stability": "experimental",
            "summary": "The artifactId is generally the name that the project is known by."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 53
          },
          "name": "artifactId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "\"org.acme\"",
            "remarks": "For example,\nall core Maven artifacts do (well, should) live under the groupId\norg.apache.maven. Group ID's do not necessarily use the dot notation, for\nexample, the junit project. Note that the dot-notated groupId does not have\nto correspond to the package structure that the project contains. It is,\nhowever, a good practice to follow. When stored within a repository, the\ngroup acts much like the Java packaging structure does in an operating\nsystem. The dots are replaced by OS specific directory separators (such as\n'/' in Unix) which becomes a relative directory structure from the base\nrepository. In the example given, the org.codehaus.mojo group lives within\nthe directory $M2_REPO/org/codehaus/mojo.",
            "stability": "experimental",
            "summary": "This is generally unique amongst an organization or a project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 38
          },
          "name": "groupId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "\"0.1.0\"",
            "remarks": "groupId:artifactId denotes a\nsingle project but they cannot delineate which incarnation of that project\nwe are talking about. Do we want the junit:junit of 2018 (version 4.12), or\nof 2007 (version 3.8.2)? In short: code changes, those changes should be\nversioned, and this element keeps those versions in line. It is also used\nwithin an artifact's repository to separate versions from each other.\nmy-project version 1.0 files live in the directory structure\n$M2_REPO/org/codehaus/mojo/my-project/1.0.",
            "stability": "experimental",
            "summary": "This is the last piece of the naming puzzle."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 67
          },
          "name": "version",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "undefined",
            "remarks": "Although this should not replace\nformal documentation, a quick comment to any readers of the POM is always\nhelpful.",
            "stability": "experimental",
            "summary": "Description of a project is always good."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 84
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"jar\"",
            "stability": "experimental",
            "summary": "Project packaging format."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 74
          },
          "name": "packaging",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "undefined",
            "stability": "experimental",
            "summary": "A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 103
          },
          "name": "parentPom",
          "optional": true,
          "type": {
            "fqn": "projen.java.ParentPom"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "undefined",
            "remarks": "This is a nice gesture for\nprojects users, however, so that they know where the project lives.",
            "stability": "experimental",
            "summary": "The URL, like the name, is not required."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 93
          },
          "name": "url",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/pom:PomOptions"
    },
    "projen.java.Projenrc": {
      "assembly": "projen",
      "base": "projen.ProjenrcFile",
      "docs": {
        "remarks": "This will install `org.projen/projen` as a Maven dependency and will add a\n`synth` task which will compile & execute `main()` from\n`src/main/java/projenrc.java`.",
        "stability": "experimental",
        "summary": "Allows writing projenrc files in java."
      },
      "fqn": "projen.java.Projenrc",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/java/projenrc.ts",
          "line": 60
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "pom",
            "type": {
              "fqn": "projen.java.Pom"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.java.ProjenrcOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/projenrc.ts",
        "line": 49
      },
      "name": "Projenrc",
      "namespace": "java",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the java class that includes the projen entrypoint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/projenrc.ts",
            "line": 53
          },
          "name": "className",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The path of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/projenrc.ts",
            "line": 110
          },
          "name": "filePath",
          "overrides": "projen.ProjenrcFile",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/projenrc:Projenrc"
    },
    "projen.java.ProjenrcOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Projenrc`."
      },
      "fqn": "projen.java.ProjenrcOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/java/projenrc.ts",
        "line": 14
      },
      "name": "ProjenrcOptions",
      "namespace": "java",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"projenrc\"",
            "stability": "experimental",
            "summary": "The name of the Java class which contains the `main()` method for projen."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/projenrc.ts",
            "line": 19
          },
          "name": "className",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- current version",
            "stability": "experimental",
            "summary": "The projen version to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/projenrc.ts",
            "line": 25
          },
          "name": "projenVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This means that projenrc will be under\n`src/test/java/projenrc.java` and projen will be defined as a test\ndependency. This enforces that application code does not take a dependency\non projen code.\n\nIf this is disabled, projenrc should be under\n`src/main/java/projenrc.java`.",
            "stability": "experimental",
            "summary": "Defines projenrc under the test scope instead of the main scope, which is reserved to the app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/projenrc.ts",
            "line": 39
          },
          "name": "testScope",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/java/projenrc:ProjenrcOptions"
    },
    "projen.java.UpdatePolicy": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.java.UpdatePolicy",
      "initializer": {
        "docs": {
          "stability": "experimental"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/java/pom.ts",
        "line": 186
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Updates at an interval of X minutes."
          },
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 194
          },
          "name": "interval",
          "parameters": [
            {
              "name": "minutes",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        }
      ],
      "name": "UpdatePolicy",
      "namespace": "java",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 187
          },
          "name": "ALWAYS",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 188
          },
          "name": "DAILY",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/java/pom.ts",
            "line": 189
          },
          "name": "NEVER",
          "static": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/java/pom:UpdatePolicy"
    },
    "projen.javascript.AddBundleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `addBundle()`."
      },
      "fqn": "projen.javascript.AddBundleOptions",
      "interfaces": [
        "projen.javascript.BundlingOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 334
      },
      "name": "AddBundleOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "\"node\"",
            "stability": "experimental",
            "summary": "esbuild platform."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 347
          },
          "name": "platform",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"node12\"",
            "stability": "experimental",
            "summary": "esbuild target."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 340
          },
          "name": "target",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no comments are passed",
            "remarks": "This is similar to footer which inserts at the end instead of the beginning.\n\nThis is commonly used to insert comments:",
            "stability": "experimental",
            "summary": "Use this to insert an arbitrary string at the beginning of generated JavaScript files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 476
          },
          "name": "banner",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Charset.ASCII",
            "remarks": "By default esbuild's output is ASCII-only. Any non-ASCII characters are escaped\nusing backslash escape sequences. Using escape sequences makes the generated output\nslightly bigger, and also makes it harder to read. If you would like for esbuild to print\nthe original characters without using escape sequences, use `Charset.UTF8`.",
            "see": "https://esbuild.github.io/api/#charset",
            "stability": "experimental",
            "summary": "The charset to use for esbuild's output."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 500
          },
          "name": "charset",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.Charset"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no replacements are made",
            "remarks": "For example, `{ 'process.env.DEBUG': 'true' }`.\n\nAnother example, `{ 'process.env.API_KEY': JSON.stringify('xxx-xxxx-xxx') }`.",
            "stability": "experimental",
            "summary": "Replace global identifiers with constant expressions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 511
          },
          "name": "define",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional esbuild arguments are passed",
            "remarks": "For example, to add the [--log-limit](https://esbuild.github.io/api/#log-limit) flag:\n\n```text\nproject.bundler.addBundle(\"./src/hello.ts\", {\n  platform: \"node\",\n  target: \"node18\",\n  sourcemap: true,\n  format: \"esm\",\n  esbuildArgs: {\n    \"--log-limit\": \"0\",\n  },\n});\n```",
            "stability": "experimental",
            "summary": "Build arguments to pass into esbuild."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 532
          },
          "name": "esbuildArgs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "boolean"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Mark the output file as executable."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 359
          },
          "name": "executable",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no comments are passed",
            "remarks": "This is similar to banner which inserts at the beginning instead of the end.\n\nThis is commonly used to insert comments",
            "stability": "experimental",
            "summary": "Use this to insert an arbitrary string at the end of generated JavaScript files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 487
          },
          "name": "footer",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "remarks": "There are currently three possible values that can be configured: `\"iife\"`, `\"cjs\"`, and `\"esm\"`.\n\nIf not set (`undefined`), esbuild picks an output format for you based on `platform`:\n- `\"cjs\"` if `platform` is `\"node\"`\n- `\"iife\"` if `platform` is `\"browser\"`\n- `\"esm\"` if `platform` is `\"neutral\"`\n\nNote: If making a bundle to run under node with ESM, set `format` to `\"esm\"` instead of setting `platform` to `\"neutral\"`.",
            "see": "https://esbuild.github.io/api/#format",
            "stability": "experimental",
            "summary": "Output format for the generated JavaScript files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 388
          },
          "name": "format",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no code is injected",
            "see": "https://esbuild.github.io/api/#inject",
            "stability": "experimental",
            "summary": "This option allows you to automatically replace a global variable with an import from another file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 549
          },
          "name": "inject",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "In JavaScript the `name` property on functions and classes defaults to a\nnearby identifier in the source code.\n\nHowever, minification renames symbols to reduce code size and bundling\nsometimes need to rename symbols to avoid collisions. That changes value of\nthe `name` property for many of these cases. This is usually fine because\nthe `name` property is normally only used for debugging. However, some\nframeworks rely on the `name` property for registration and binding purposes.\nIf this is the case, you can enable this option to preserve the original\n`name` values even in minified code.",
            "stability": "experimental",
            "summary": "Whether to preserve the original `name` values even in minified code."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 438
          },
          "name": "keepNames",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Loaders are appended to the esbuild command by `--loader:.extension=loader`",
            "stability": "experimental",
            "summary": "Map of file extensions (without dot) and loaders to use for this file type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 371
          },
          "name": "loaders",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "LogLevel.WARNING",
            "remarks": "This is also propagated to the package manager and\napplies to its specific install command.",
            "stability": "experimental",
            "summary": "Log level for esbuild."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 420
          },
          "name": "logLevel",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.BundleLogLevel"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Try ['module', 'main'] to default to ES module versions.",
            "stability": "experimental",
            "summary": "How to determine the entry point for modules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 540
          },
          "name": "mainFields",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "The metadata in this JSON file follows this schema (specified using TypeScript syntax):\n\n```text\n{\n  outputs: {\n    [path: string]: {\n      bytes: number\n      inputs: {\n        [path: string]: { bytesInOutput: number }\n      }\n      imports: { path: string }[]\n      exports: string[]\n    }\n  }\n}\n```\nThis data can then be analyzed by other tools. For example,\nbundle buddy can consume esbuild's metadata format and generates a treemap visualization\nof the modules in your bundle and how much space each one takes up.",
            "see": "https://esbuild.github.io/api/#metafile",
            "stability": "experimental",
            "summary": "This option tells esbuild to write out a JSON file relative to output directory with metadata about the build."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 465
          },
          "name": "metafile",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether to minify files when bundling."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 395
          },
          "name": "minify",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"index.js\"",
            "stability": "experimental",
            "summary": "Bundler output path relative to the asset's output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 353
          },
          "name": "outfile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "SourceMapMode.DEFAULT",
            "see": "https://esbuild.github.io/api/#sourcemap",
            "stability": "experimental",
            "summary": "Source map mode to be used when bundling."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 403
          },
          "name": "sourceMapMode",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.SourceMapMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "see": "https://esbuild.github.io/api/#sources-content",
            "stability": "experimental",
            "summary": "Whether to include original source code in source maps when bundling."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 412
          },
          "name": "sourcesContent",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tsconfig.json\"",
            "stability": "experimental",
            "summary": "The path of the tsconfig.json file to use for bundling."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 365
          },
          "name": "tsconfigPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/bundler:AddBundleOptions"
    },
    "projen.javascript.ArrowParens": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.ArrowParens",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 213
      },
      "members": [
        {
          "docs": {
            "remarks": "Example: `(x) => x`",
            "stability": "experimental",
            "summary": "Always include parens."
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "remarks": "Example: `x => x`",
            "stability": "experimental",
            "summary": "Omit parens when possible."
          },
          "name": "AVOID"
        }
      ],
      "name": "ArrowParens",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:ArrowParens"
    },
    "projen.javascript.AutoRelease": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Automatic bump modes."
      },
      "fqn": "projen.javascript.AutoRelease",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/node-project.ts",
        "line": 362
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Automatically bump & release a new version for every commit to \"main\"."
          },
          "name": "EVERY_COMMIT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Automatically bump & release a new version on a daily basis."
          },
          "name": "DAILY"
        }
      ],
      "name": "AutoRelease",
      "namespace": "javascript",
      "symbolId": "src/javascript/node-project:AutoRelease"
    },
    "projen.javascript.BuildWorkflowOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Build workflow options for NodeProject."
      },
      "fqn": "projen.javascript.BuildWorkflowOptions",
      "interfaces": [
        "projen.build.BuildWorkflowCommonOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-project.ts",
        "line": 346
      },
      "name": "BuildWorkflowOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This means that any files synthesized by projen or e.g. test snapshots will\nalways be up-to-date before a PR is merged.\n\nImplies that PR builds do not have anti-tamper checks.",
            "stability": "experimental",
            "summary": "Automatically update files modified during builds to pull-request branches."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 356
          },
          "name": "mutableBuild",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/node-project:BuildWorkflowOptions"
    },
    "projen.javascript.Bundle": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.Bundle",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 270
      },
      "name": "Bundle",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The task that produces this bundle."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 274
          },
          "name": "bundleTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Base directory containing the output file (relative to project root)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 289
          },
          "name": "outdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Location of the output file (relative to project root)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 284
          },
          "name": "outfile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The \"watch\" task for this bundle."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 279
          },
          "name": "watchTask",
          "optional": true,
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/javascript/bundler:Bundle"
    },
    "projen.javascript.BundleLogLevel": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Log levels for esbuild and package managers' install commands."
      },
      "fqn": "projen.javascript.BundleLogLevel",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 651
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show everything."
          },
          "name": "VERBOSE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show everything from info and some additional messages for debugging."
          },
          "name": "DEBUG"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show warnings, errors, and an output file summary."
          },
          "name": "INFO"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show warnings and errors."
          },
          "name": "WARNING"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show errors only."
          },
          "name": "ERROR"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Show nothing."
          },
          "name": "SILENT"
        }
      ],
      "name": "BundleLogLevel",
      "namespace": "javascript",
      "symbolId": "src/javascript/bundler:BundleLogLevel"
    },
    "projen.javascript.Bundler": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "In the future, this will also supports bundling websites.",
        "stability": "experimental",
        "summary": "Adds support for bundling JavaScript applications and dependencies into a single file."
      },
      "fqn": "projen.javascript.Bundler",
      "initializer": {
        "docs": {
          "stability": "experimental",
          "summary": "Creates a `Bundler`."
        },
        "locationInModule": {
          "filename": "src/javascript/bundler.ts",
          "line": 89
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.BundlerOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 60
      },
      "methods": [
        {
          "docs": {
            "returns": "A bundler",
            "stability": "experimental",
            "summary": "Returns the `Bundler` instance associated with a project or `undefined` if there is no Bundler."
          },
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 67
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The project."
              },
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.javascript.Bundler"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a task to the project which bundles a specific entrypoint and all of its dependencies into a single javascript output file."
          },
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 134
          },
          "name": "addBundle",
          "parameters": [
            {
              "docs": {
                "summary": "The relative path of the artifact within the project."
              },
              "name": "entrypoint",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Bundling options."
              },
              "name": "options",
              "type": {
                "fqn": "projen.javascript.AddBundleOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.javascript.Bundle"
            }
          }
        }
      ],
      "name": "Bundler",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Root bundle directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 80
          },
          "name": "bundledir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "If the project doesn't have a \"bundle\" task, it will be created and spawned\nduring the pre-compile phase.",
            "stability": "experimental",
            "summary": "Gets or creates the singleton \"bundle\" task of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 109
          },
          "name": "bundleTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The semantic version requirement for `esbuild` (if defined)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 75
          },
          "name": "esbuildVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/bundler:Bundler"
    },
    "projen.javascript.BundlerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Bundler`."
      },
      "fqn": "projen.javascript.BundlerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 15
      },
      "name": "BundlerOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "Use `runBundleTask` instead.",
            "stability": "deprecated",
            "summary": "Install the `bundle` command as a pre-compile phase."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 35
          },
          "name": "addToPreCompile",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"assets\"",
            "stability": "experimental",
            "summary": "Output directory for all bundles."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 27
          },
          "name": "assetsDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no specific version (implies latest)",
            "stability": "experimental",
            "summary": "The semantic version requirement for `esbuild`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 21
          },
          "name": "esbuildVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Loaders are appended to the esbuild command by `--loader:.extension=loader`",
            "stability": "experimental",
            "summary": "Map of file extensions (without dot) and loaders to use for this file type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 53
          },
          "name": "loaders",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "RunBundleTask.PRE_COMPILE",
            "remarks": "Note: If using `addBundle()` with the `bundleCompiledResults`, this option\nmust be set to `RunBundleTask.POST_COMPILE` or `RunBundleTask.MANUAL`.",
            "see": "AddBundleOptions.bundleCompiledResults *",
            "stability": "experimental",
            "summary": "Choose which phase (if any) to add the `bundle` command to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 47
          },
          "name": "runBundleTask",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.RunBundleTask"
          }
        }
      ],
      "symbolId": "src/javascript/bundler:BundlerOptions"
    },
    "projen.javascript.BundlingOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for bundling."
      },
      "fqn": "projen.javascript.BundlingOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 295
      },
      "name": "BundlingOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Instead of being bundled, the import will be preserved (using require for\nthe iife and cjs formats and using import for the esm format) and will be\nevaluated at run time instead.\n\nThis has several uses. First of all, it can be used to trim unnecessary\ncode from your bundle for a code path that you know will never be executed.\nFor example, a package may contain code that only runs in node but you will\nonly be using that package in the browser. It can also be used to import\ncode in node at run time from a package that cannot be bundled. For\nexample, the fsevents package contains a native extension, which esbuild\ndoesn't support.",
            "stability": "experimental",
            "summary": "You can mark a file or a package as external to exclude it from your build."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 312
          },
          "name": "externals",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Include a source map in the bundle."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 319
          },
          "name": "sourcemap",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This can be used\nto continusouly watch for changes.",
            "stability": "experimental",
            "summary": "In addition to the `bundle:xyz` task, creates `bundle:xyz:watch` task which will invoke the same esbuild command with the `--watch` flag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/bundler.ts",
            "line": 328
          },
          "name": "watchTask",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/bundler:BundlingOptions"
    },
    "projen.javascript.Charset": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Charset for esbuild's output."
      },
      "fqn": "projen.javascript.Charset",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 632
      },
      "members": [
        {
          "docs": {
            "remarks": "Any non-ASCII characters are escaped using backslash escape sequences",
            "stability": "experimental",
            "summary": "ASCII."
          },
          "name": "ASCII"
        },
        {
          "docs": {
            "remarks": "Keep original characters without using escape sequences",
            "stability": "experimental",
            "summary": "UTF-8."
          },
          "name": "UTF8"
        }
      ],
      "name": "Charset",
      "namespace": "javascript",
      "symbolId": "src/javascript/bundler:Charset"
    },
    "projen.javascript.CodeArtifactAuthProvider": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Options for authorizing requests to a AWS CodeArtifact npm repository."
      },
      "fqn": "projen.javascript.CodeArtifactAuthProvider",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 363
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Fixed credentials provided via Github secrets."
          },
          "name": "ACCESS_AND_SECRET_KEY_PAIR"
        },
        {
          "docs": {
            "remarks": "See:\nhttps://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html\nhttps://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services",
            "stability": "experimental",
            "summary": "Ephemeral credentials provided via Github's OIDC integration with an IAM role."
          },
          "name": "GITHUB_OIDC"
        }
      ],
      "name": "CodeArtifactAuthProvider",
      "namespace": "javascript",
      "symbolId": "src/javascript/node-package:CodeArtifactAuthProvider"
    },
    "projen.javascript.CodeArtifactOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for publishing npm packages to AWS CodeArtifact."
      },
      "fqn": "projen.javascript.CodeArtifactOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 381
      },
      "name": "CodeArtifactOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- When the `authProvider` value is set to\n`CodeArtifactAuthProvider.ACCESS_AND_SECRET_KEY_PAIR`, the default is\n\"AWS_ACCESS_KEY_ID\". For `CodeArtifactAuthProvider.GITHUB_OIDC`, this\nvalue must be left undefined.",
            "remarks": "This property must be specified only when publishing to AWS CodeArtifact (`npmRegistryUrl` contains AWS CodeArtifact URL).",
            "stability": "experimental",
            "summary": "GitHub secret which contains the AWS access key ID to use when publishing packages to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 398
          },
          "name": "accessKeyIdSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "CodeArtifactAuthProvider.ACCESS_AND_SECRET_KEY_PAIR",
            "stability": "experimental",
            "summary": "Provider to use for authorizing requests to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 387
          },
          "name": "authProvider",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.CodeArtifactAuthProvider"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "remarks": "When using the `CodeArtifactAuthProvider.GITHUB_OIDC` auth provider, this value must be defined.",
            "stability": "experimental",
            "summary": "ARN of AWS role to be assumed prior to get authorization token from AWS CodeArtifact This property must be specified only when publishing to AWS CodeArtifact (`registry` contains AWS CodeArtifact URL)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 418
          },
          "name": "roleToAssume",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- When the `authProvider` value is set to\n`CodeArtifactAuthProvider.ACCESS_AND_SECRET_KEY_PAIR`, the default is\n\"AWS_SECRET_ACCESS_KEY\". For `CodeArtifactAuthProvider.GITHUB_OIDC`, this\nvalue must be left undefined.",
            "remarks": "This property must be specified only when publishing to AWS CodeArtifact (`npmRegistryUrl` contains AWS CodeArtifact URL).",
            "stability": "experimental",
            "summary": "GitHub secret which contains the AWS secret access key to use when publishing packages to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 409
          },
          "name": "secretAccessKeySecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/node-package:CodeArtifactOptions"
    },
    "projen.javascript.CoverageThreshold": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.CoverageThreshold",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 617
      },
      "name": "CoverageThreshold",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 618
          },
          "name": "branches",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 619
          },
          "name": "functions",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 620
          },
          "name": "lines",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 621
          },
          "name": "statements",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/javascript/jest:CoverageThreshold"
    },
    "projen.javascript.EmbeddedLanguageFormatting": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.EmbeddedLanguageFormatting",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 225
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Format embedded code if Prettier can automatically identify it."
          },
          "name": "AUTO"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Never automatically format embedded code."
          },
          "name": "OFF"
        }
      ],
      "name": "EmbeddedLanguageFormatting",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:EmbeddedLanguageFormatting"
    },
    "projen.javascript.EndOfLine": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.EndOfLine",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 237
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Maintain existing (mixed values within one file are normalised by looking at what's used after the first line)."
          },
          "name": "AUTO"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Carriage Return character only (\\r), used very rarely."
          },
          "name": "CR"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Carriage Return + Line Feed characters (\\r\\n), common on Windows."
          },
          "name": "CRLF"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos."
          },
          "name": "LF"
        }
      ],
      "name": "EndOfLine",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:EndOfLine"
    },
    "projen.javascript.Eslint": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Represents eslint configuration."
      },
      "fqn": "projen.javascript.Eslint",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/eslint.ts",
          "line": 200
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.javascript.EslintOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/eslint.ts",
        "line": 156
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns the singleton Eslint component of a project or undefined if there is none."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 160
          },
          "name": "of",
          "parameters": [
            {
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.javascript.Eslint"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds an `extends` item to the eslint configuration."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 533
          },
          "name": "addExtends",
          "parameters": [
            {
              "docs": {
                "summary": "The list of \"extends\" to add."
              },
              "name": "extendList",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Do not lint these files."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 525
          },
          "name": "addIgnorePattern",
          "parameters": [
            {
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a file, glob pattern or directory with source files to lint (e.g. [ \"src\" ])."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 491
          },
          "name": "addLintPattern",
          "parameters": [
            {
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add an eslint override."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 518
          },
          "name": "addOverride",
          "parameters": [
            {
              "name": "override",
              "type": {
                "fqn": "projen.javascript.EslintOverride"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds an eslint plugin."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 509
          },
          "name": "addPlugins",
          "parameters": [
            {
              "docs": {
                "summary": "The names of plugins to add."
              },
              "name": "plugins",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add an eslint rule."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 499
          },
          "name": "addRules",
          "parameters": [
            {
              "name": "rules",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a glob file pattern which allows importing dev dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 543
          },
          "name": "allowDevDeps",
          "parameters": [
            {
              "docs": {
                "summary": "glob pattern."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "Eslint",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Direct access to the eslint configuration (escape hatch)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 183
          },
          "name": "config",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "eslint task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 178
          },
          "name": "eslintTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "File patterns that should not be linted."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 188
          },
          "name": "ignorePatterns",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns an immutable copy of the lintPatterns being used by this eslint configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 480
          },
          "name": "lintPatterns",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "eslint overrides."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 173
          },
          "name": "overrides",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.EslintOverride"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "eslint rules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 168
          },
          "name": "rules",
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "array"
                }
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/javascript/eslint:Eslint"
    },
    "projen.javascript.EslintCommandOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.EslintCommandOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/eslint.ts",
        "line": 104
      },
      "name": "EslintCommandOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Extra flag arguments to pass to eslint command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 114
          },
          "name": "extraArgs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Whether to fix eslint issues when running the eslint task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 109
          },
          "name": "fix",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/eslint:EslintCommandOptions"
    },
    "projen.javascript.EslintOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.EslintOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/eslint.ts",
        "line": 11
      },
      "name": "EslintOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Files or glob patterns or directories with source files to lint (e.g. [ \"src\" ])."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 21
          },
          "name": "dirs",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Enable import alias for module paths."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 88
          },
          "name": "aliasExtensions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Enable import alias for module paths."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 82
          },
          "name": "aliasMap",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for eslint command executed by eslint task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 39
          },
          "name": "commandOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.EslintCommandOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "These sources are linted but may also import packages from `devDependencies`.",
            "stability": "experimental",
            "summary": "Files or glob patterns or directories with source files that include tests and build tools."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 29
          },
          "name": "devdirs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\".ts\"]",
            "stability": "experimental",
            "summary": "File types that should be linted (e.g. [ \".js\", \".ts\" ])."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 34
          },
          "name": "fileExtensions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[ '*.js', '*.d.ts', 'node_modules/', '*.generated.ts', 'coverage' ]",
            "stability": "experimental",
            "summary": "List of file patterns that should not be linted, using the same syntax as .gitignore patterns."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 47
          },
          "name": "ignorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "set to `false` to remove any automatic rules and add manually",
            "stability": "deprecated",
            "summary": "Should we lint .projenrc.js."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 62
          },
          "name": "lintProjenRc",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"projenrc.js\"",
            "deprecated": "provide as `devdirs`",
            "remarks": "Use empty string to disable.",
            "stability": "deprecated",
            "summary": "Projenrc file to lint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 54
          },
          "name": "lintProjenRcFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable prettier for code formatting."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 68
          },
          "name": "prettier",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Use known ESLint best practices to place \"prettier\" plugins at the end of the array",
            "remarks": "This option allows to sort the extends array in any way seen fit.",
            "stability": "experimental",
            "summary": "The extends array in eslint is order dependent."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 76
          },
          "name": "sortExtends",
          "optional": true,
          "type": {
            "fqn": "projen.ICompareString"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This prevents `import/no-unresolved` eslint errors when importing a `@types/*` module that would otherwise remain unresolved.",
            "stability": "experimental",
            "summary": "Always try to resolve types under `<root>@types` directory even it doesn't contain any source code."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 95
          },
          "name": "tsAlwaysTryTypes",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"./tsconfig.json\"",
            "stability": "experimental",
            "summary": "Path to `tsconfig.json` which should be used by eslint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 16
          },
          "name": "tsconfigPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Write eslint configuration as YAML instead of JSON."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 101
          },
          "name": "yaml",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/eslint:EslintOptions"
    },
    "projen.javascript.EslintOverride": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "eslint rules override."
      },
      "fqn": "projen.javascript.EslintOverride",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/eslint.ts",
        "line": 120
      },
      "name": "EslintOverride",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Files or file patterns on which to apply the override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 124
          },
          "name": "files",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If a file matches any of the excluded patterns, the configuration won’t apply.",
            "stability": "experimental",
            "summary": "Pattern(s) to exclude from this override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 130
          },
          "name": "excludedFiles",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Config(s) to extend in this override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 145
          },
          "name": "extends",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The overridden parser."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 140
          },
          "name": "parser",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "`plugins` override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 150
          },
          "name": "plugins",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The overridden rules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/eslint.ts",
            "line": 135
          },
          "name": "rules",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/javascript/eslint:EslintOverride"
    },
    "projen.javascript.HTMLWhitespaceSensitivity": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.HTMLWhitespaceSensitivity",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 260
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Respect the default value of CSS display property."
          },
          "name": "CSS"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whitespaces are considered insignificant."
          },
          "name": "IGNORE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whitespaces are considered significant."
          },
          "name": "STRICT"
        }
      ],
      "name": "HTMLWhitespaceSensitivity",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:HTMLWhitespaceSensitivity"
    },
    "projen.javascript.HasteConfig": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.HasteConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 636
      },
      "name": "HasteConfig",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 637
          },
          "name": "computeSha1",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 638
          },
          "name": "defaultPlatform",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 639
          },
          "name": "hasteImplModulePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 640
          },
          "name": "platforms",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 641
          },
          "name": "throwOnModuleCollision",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/jest:HasteConfig"
    },
    "projen.javascript.Jest": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "- `test`, intended for testing locally and in CI. Will update snapshots unless `updateSnapshot: UpdateSnapshot: NEVER` is set.\n- `test:watch`, intended for automatically rerunning tests when files change.\n- `test:update`, intended for testing locally and updating snapshots to match the latest unit under test. Only available when `updateSnapshot: UpdateSnapshot: NEVER`.",
        "stability": "experimental",
        "summary": "Installs the following npm scripts:."
      },
      "fqn": "projen.javascript.Jest",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/jest.ts",
          "line": 706
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.JestOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 670
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns the singleton Jest component of a project or undefined if there is none."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 674
          },
          "name": "of",
          "parameters": [
            {
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.javascript.Jest"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 884
          },
          "name": "addIgnorePattern",
          "parameters": [
            {
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Will overwrite if the same key is used as a pre-existing one.",
            "stability": "experimental",
            "summary": "Adds one or more moduleNameMapper entries to Jest's configuration."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 926
          },
          "name": "addModuleNameMappers",
          "parameters": [
            {
              "docs": {
                "summary": "- A map from regular expressions to module names or to arrays of module names that allow to stub out resources, like images or styles with a single module."
              },
              "name": "moduleNameMapperAdditions",
              "type": {
                "collection": {
                  "elementtype": {
                    "union": {
                      "types": [
                        {
                          "primitive": "string"
                        },
                        {
                          "collection": {
                            "elementtype": {
                              "primitive": "string"
                            },
                            "kind": "array"
                          }
                        }
                      ]
                    }
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds one or more modulePaths to Jest's configuration."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 941
          },
          "name": "addModulePaths",
          "parameters": [
            {
              "docs": {
                "summary": "- An array of absolute paths to additional locations to search when resolving modules   *."
              },
              "name": "modulePaths",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 888
          },
          "name": "addReporter",
          "parameters": [
            {
              "name": "reporter",
              "type": {
                "fqn": "projen.javascript.JestReporter"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds one or more roots to Jest's configuration."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 953
          },
          "name": "addRoots",
          "parameters": [
            {
              "docs": {
                "summary": "- A list of paths to directories that Jest should use to search for files in."
              },
              "name": "roots",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a a setup file to Jest's setupFiles configuration."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 896
          },
          "name": "addSetupFile",
          "parameters": [
            {
              "docs": {
                "summary": "File path to setup file."
              },
              "name": "file",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a a setup file to Jest's setupFilesAfterEnv configuration."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 907
          },
          "name": "addSetupFileAfterEnv",
          "parameters": [
            {
              "docs": {
                "summary": "File path to setup file."
              },
              "name": "file",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 914
          },
          "name": "addSnapshotResolver",
          "parameters": [
            {
              "name": "file",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a test match pattern."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 837
          },
          "name": "addTestMatch",
          "parameters": [
            {
              "docs": {
                "summary": "glob pattern to match for tests."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a watch ignore pattern."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 880
          },
          "name": "addWatchIgnorePattern",
          "parameters": [
            {
              "docs": {
                "summary": "The pattern (regular expression)."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Build standard test match patterns for a directory."
          },
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 846
          },
          "name": "discoverTestMatchPatternsForDirs",
          "parameters": [
            {
              "docs": {
                "remarks": "Matches any folder if not specified or an empty array.",
                "summary": "The directories to add test matches for."
              },
              "name": "dirs",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "docs": {
                "summary": "Options for building test match patterns."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.javascript.JestDiscoverTestMatchPatternsForDirsOptions"
              }
            }
          ]
        }
      ],
      "name": "Jest",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Escape hatch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 681
          },
          "name": "config",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Jest version, including `@` symbol, like `@^29`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 686
          },
          "name": "jestVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "`undefined` if settings are written to `package.json`",
            "stability": "experimental",
            "summary": "Jest config file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 691
          },
          "name": "file",
          "optional": true,
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/javascript/jest:Jest"
    },
    "projen.javascript.JestConfigOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.JestConfigOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 11
      },
      "name": "JestConfigOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Escape hatch to allow any value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 479
          },
          "name": "additionalOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "remarks": "All modules used in your tests will have a replacement implementation, keeping the API surface",
            "stability": "experimental",
            "summary": "This option tells Jest that all imported modules in your tests should be mocked automatically."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 17
          },
          "name": "automock",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- 0",
            "remarks": "The bail config option can be used here to have Jest stop running tests after n failures.\nSetting bail to true is the same as setting bail to 1.",
            "stability": "experimental",
            "summary": "By default, Jest runs all tests and produces all errors into the console upon completion."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 25
          },
          "name": "bail",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "number"
                },
                {
                  "primitive": "boolean"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"/tmp/<path>\"",
            "stability": "experimental",
            "summary": "The directory where Jest should store its cached dependency information."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 31
          },
          "name": "cacheDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Equivalent to calling jest.clearAllMocks() before each test.\nThis does not remove any mock implementation that may have been provided",
            "stability": "experimental",
            "summary": "Automatically clear mock calls and instances before every test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 39
          },
          "name": "clearMocks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Because this retrofits all executed files with coverage collection statements,\nit may significantly slow down your tests",
            "stability": "experimental",
            "summary": "Indicates whether the coverage information should be collected while executing the test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 47
          },
          "name": "collectCoverage",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "stability": "experimental",
            "summary": "An array of glob patterns indicating a set of files for which coverage information should be collected."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 53
          },
          "name": "collectCoverageFrom",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"coverage\"",
            "stability": "experimental",
            "summary": "The directory where Jest should output its coverage files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 59
          },
          "name": "coverageDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"/node_modules/\"",
            "remarks": "If the file path matches any of the patterns, coverage information will be skipped",
            "stability": "experimental",
            "summary": "An array of regexp pattern strings that are matched against all file paths before executing the test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 66
          },
          "name": "coveragePathIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"v8\"",
            "remarks": "Allowed values are v8 (default) or babel",
            "stability": "experimental",
            "summary": "Indicates which provider should be used to instrument code for coverage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 73
          },
          "name": "coverageProvider",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"json\", \"lcov\", \"text\", \"clover\", \"cobertura\"]",
            "remarks": "Any istanbul reporter can be used",
            "stability": "experimental",
            "summary": "A list of reporter names that Jest uses when writing coverage reports."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 79
          },
          "name": "coverageReporters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "This will be used to configure minimum threshold enforcement\nfor coverage results. Thresholds can be specified as global, as a glob, and as a directory or file path.\nIf thresholds aren't met, jest will fail.",
            "stability": "experimental",
            "summary": "Specify the global coverage thresholds."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 87
          },
          "name": "coverageThreshold",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.CoverageThreshold"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "It must be a node module that exports an object with an extract function",
            "stability": "experimental",
            "summary": "This option allows the use of a custom dependency extractor."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 94
          },
          "name": "dependencyExtractor",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "stability": "experimental",
            "summary": "Allows for a label to be printed alongside a test while it is running."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 100
          },
          "name": "displayName",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "remarks": "Useful for easing the upgrade process.",
            "stability": "experimental",
            "summary": "Make calling deprecated APIs throw helpful error messages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 106
          },
          "name": "errorOnDeprecated",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "stability": "experimental",
            "summary": "Test files run inside a vm, which slows calls to global context properties (e.g. Math). With this option you can specify extra properties to be defined inside the vm for faster lookups."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 113
          },
          "name": "extraGlobals",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- ['']",
            "remarks": "With this option, you can overwrite this behavior and include otherwise ignored files in code coverage.",
            "stability": "experimental",
            "summary": "Test files are normally ignored from collecting code coverage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 120
          },
          "name": "forceCoverageMatch",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- {}",
            "stability": "experimental",
            "summary": "A set of global variables that need to be available in all test environments."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 126
          },
          "name": "globals",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "This function gets Jest's globalConfig object as a parameter.",
            "stability": "experimental",
            "summary": "This option allows the use of a custom global setup module which exports an async function that is triggered once before all test suites."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 133
          },
          "name": "globalSetup",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "This function gets Jest's globalConfig object as a parameter.",
            "stability": "experimental",
            "summary": "This option allows the use of a custom global teardown module which exports an async function that is triggered once after all test suites."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 140
          },
          "name": "globalTeardown",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- {}",
            "stability": "experimental",
            "summary": "This will be used to configure the behavior of jest-haste-map, Jest's internal file crawler/cache system."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 146
          },
          "name": "haste",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.HasteConfig"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "jest": "/globals"
            },
            "default": "- true",
            "stability": "experimental",
            "summary": "Insert Jest's globals (expect, test, describe, beforeEach etc.) into the global environment. If you set this to false, you should import from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 153
          },
          "name": "injectGlobals",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- 5",
            "stability": "experimental",
            "summary": "A number limiting the number of tests that are allowed to run at the same time when using test.concurrent. Any test above this limit will be queued and executed once a slot is released."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 160
          },
          "name": "maxConcurrency",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the number of the cores available on your machine minus one for the main thread",
            "remarks": "In single run mode,\nthis defaults to the number of the cores available on your machine minus one for the main thread\nIn watch mode, this defaults to half of the available cores on your machine.\nFor environments with variable CPUs available, you can use percentage based configuration: \"maxWorkers\": \"50%\"",
            "stability": "experimental",
            "summary": "Specifies the maximum number of workers the worker-pool will spawn for running tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 169
          },
          "name": "maxWorkers",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "primitive": "number"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"node_modules\"]",
            "remarks": "Setting this option will override the default, if you wish to still search node_modules for packages\ninclude it along with any other options: [\"node_modules\", \"bower_components\"]",
            "stability": "experimental",
            "summary": "An array of directory names to be searched recursively up from the requiring module's location."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 177
          },
          "name": "moduleDirectories",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"js\", \"json\", \"jsx\", \"ts\", \"tsx\", \"node\"]",
            "remarks": "If you require modules without specifying a file extension,\nthese are the extensions Jest will look for, in left-to-right order.",
            "stability": "experimental",
            "summary": "An array of file extensions your modules use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 184
          },
          "name": "moduleFileExtensions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- null",
            "stability": "experimental",
            "summary": "A map from regular expressions to module names or to arrays of module names that allow to stub out resources, like images or styles with a single module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 191
          },
          "name": "moduleNameMapper",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "collection": {
                        "elementtype": {
                          "primitive": "string"
                        },
                        "kind": "array"
                      }
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- []",
            "remarks": "If a given module's path matches any of the patterns,\nit will not be require()-able in the test environment.",
            "stability": "experimental",
            "summary": "An array of regexp pattern strings that are matched against all module paths before those paths are to be considered 'visible' to the module loader."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 199
          },
          "name": "modulePathIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- []",
            "remarks": "Use the <rootDir> string token to include\nthe path to your project's root directory. Example: [\"<rootDir>/app/\"].",
            "stability": "experimental",
            "summary": "An alternative API to setting the NODE_PATH env variable, modulePaths is an array of absolute paths to additional locations to search when resolving modules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 207
          },
          "name": "modulePaths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "stability": "experimental",
            "summary": "Activates notifications for test results."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 213
          },
          "name": "notify",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- failure-change",
            "remarks": "Requires notify: true",
            "stability": "experimental",
            "summary": "Specifies notification mode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 219
          },
          "name": "notifyMode",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "A preset should point to an npm module\nthat has a jest-preset.json or jest-preset.js file at the root.",
            "stability": "experimental",
            "summary": "A preset that is used as a base for Jest's configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 232
          },
          "name": "preset",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"prettier\"",
            "stability": "experimental",
            "summary": "Sets the path to the prettier node module used to update inline snapshots."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 238
          },
          "name": "prettierPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "This is great for monorepos or\nwhen working on multiple projects at the same time.",
            "stability": "experimental",
            "summary": "When the projects configuration is provided with an array of paths or glob patterns, Jest will run tests in all of the specified projects at the same time."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 246
          },
          "name": "projects",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "collection": {
                        "elementtype": {
                          "primitive": "any"
                        },
                        "kind": "map"
                      }
                    }
                  ]
                }
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "A custom reporter is a class\nthat implements onRunStart, onTestStart, onTestResult, onRunComplete methods that will be\ncalled when any of those events occurs.",
            "stability": "experimental",
            "summary": "Use this configuration option to add custom reporters to Jest."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 254
          },
          "name": "reporters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.JestReporter"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "remarks": "Equivalent to calling jest.resetAllMocks()\nbefore each test. This will lead to any mocks having their fake implementations removed but\ndoes not restore their initial implementation.",
            "stability": "experimental",
            "summary": "Automatically reset mock state before every test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 262
          },
          "name": "resetMocks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "remarks": "Enabling resetModules\ngoes a step further and resets the module registry before running each individual test.",
            "stability": "experimental",
            "summary": "By default, each test file gets its own independent module registry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 269
          },
          "name": "resetModules",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "https://jestjs.io/docs/en/configuration#resolver-string",
            "stability": "experimental",
            "summary": "This option allows the use of a custom resolver."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 276
          },
          "name": "resolver",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "remarks": "Equivalent to calling jest.restoreAllMocks()\nbefore each test. This will lead to any mocks having their fake implementations removed and\nrestores their initial implementation.",
            "stability": "experimental",
            "summary": "Automatically restore mock state before every test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 284
          },
          "name": "restoreMocks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- directory of the package.json",
            "remarks": "If you put your Jest\nconfig inside your package.json and want the root directory to be the root of your repo, the\nvalue for this config param will default to the directory of the package.json.",
            "stability": "experimental",
            "summary": "The root directory that Jest should scan for tests and modules within."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 292
          },
          "name": "rootDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"<rootDir>\"]",
            "stability": "experimental",
            "summary": "A list of paths to directories that Jest should use to search for files in."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 298
          },
          "name": "roots",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"jest-runner\"",
            "stability": "experimental",
            "summary": "This option allows you to use a custom runner instead of Jest's default test runner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 304
          },
          "name": "runner",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- []",
            "remarks": "Each setupFile will be run once per test file. Since every test runs in its own environment,\nthese scripts will be executed in the testing environment immediately before executing the\ntest code itself.",
            "stability": "experimental",
            "summary": "A list of paths to modules that run some code to configure or set up the testing environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 313
          },
          "name": "setupFiles",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- []",
            "remarks": "Since setupFiles executes before the test\nframework is installed in the environment, this script file presents you the opportunity of\nrunning some code immediately after the test framework has been installed in the environment.",
            "stability": "experimental",
            "summary": "A list of paths to modules that run some code to configure or set up the testing framework before each test file in the suite is executed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 322
          },
          "name": "setupFilesAfterEnv",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- 5",
            "stability": "experimental",
            "summary": "The number of seconds after which a test is considered as slow and reported as such in the results."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 328
          },
          "name": "slowTestThreshold",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "This config option lets you customize\nwhere Jest stores snapshot files on disk.",
            "stability": "experimental",
            "summary": "The path to a module that can resolve test<->snapshot path."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 335
          },
          "name": "snapshotResolver",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "= []",
            "stability": "experimental",
            "summary": "A list of paths to snapshot serializer modules Jest should use for snapshot testing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 341
          },
          "name": "snapshotSerializers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"jsdom\"",
            "remarks": "The default environment in Jest is a\nbrowser-like environment through jsdom. If you are building a node service, you can use the node\noption to use a node-like environment instead.",
            "stability": "experimental",
            "summary": "The test environment that will be used for testing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 349
          },
          "name": "testEnvironment",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- {}",
            "remarks": "The relevant options depend on the environment.",
            "stability": "experimental",
            "summary": "Test environment options that will be passed to the testEnvironment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 356
          },
          "name": "testEnvironmentOptions",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- 1",
            "stability": "experimental",
            "summary": "The exit code Jest returns on test failure."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 362
          },
          "name": "testFailureExitCode",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "['**\\/__tests__/**\\/*.[jt]s?(x)', '**\\/*(*.)@(spec|test).[tj]s?(x)']",
            "remarks": "By default it looks for .js, .jsx, .ts and .tsx\nfiles inside of __tests__ folders, as well as any files with a suffix of .test or .spec\n(e.g. Component.test.js or Component.spec.js). It will also find files called test.js or spec.js.",
            "stability": "experimental",
            "summary": "The glob patterns Jest uses to detect test files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 370
          },
          "name": "testMatch",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"/node_modules/\"]",
            "remarks": "If the test path matches any of the patterns, it will be skipped.",
            "stability": "experimental",
            "summary": "An array of regexp pattern strings that are matched against all test paths before executing the test."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 377
          },
          "name": "testPathIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- (/__tests__/.*|(\\\\.|/)(test|spec))\\\\.[jt]sx?$",
            "remarks": "By default it looks for .js, .jsx, .ts and .tsx\nfiles inside of __tests__ folders, as well as any files with a suffix of .test or .spec\n(e.g. Component.test.js or Component.spec.js). It will also find files called test.js or spec.js.",
            "stability": "experimental",
            "summary": "The pattern or patterns Jest uses to detect test files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 385
          },
          "name": "testRegex",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "stability": "experimental",
            "summary": "This option allows the use of a custom results processor."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 391
          },
          "name": "testResultsProcessor",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"jasmine2\"",
            "remarks": "The default is jasmine2. A custom test runner\ncan be provided by specifying a path to a test runner implementation.",
            "stability": "experimental",
            "summary": "This option allows the use of a custom test runner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 398
          },
          "name": "testRunner",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"@jest/test-sequencer\"",
            "remarks": "Sort may optionally return a Promise.",
            "stability": "experimental",
            "summary": "This option allows you to use a custom sequencer instead of Jest's default."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 405
          },
          "name": "testSequencer",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- 5000",
            "stability": "experimental",
            "summary": "Default timeout of a test in milliseconds."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 411
          },
          "name": "testTimeout",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"http://localhost\"",
            "remarks": "It is reflected in properties such as location.href.",
            "stability": "experimental",
            "summary": "This option sets the URL for the jsdom environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 417
          },
          "name": "testURL",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"real\"",
            "remarks": "Fake timers are useful when a piece of code sets a long timeout that we don't want to wait for in a test.",
            "stability": "experimental",
            "summary": "Setting this value to legacy or fake allows the use of fake timers for functions such as setTimeout."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 424
          },
          "name": "timers",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- {\"\\\\.[jt]sx?$\": \"babel-jest\"}",
            "remarks": "A transformer is a module that provides a\nsynchronous function for transforming source files.",
            "stability": "experimental",
            "summary": "A map from regular expressions to paths to transformers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 431
          },
          "name": "transform",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.Transform"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- [\"/node_modules/\", \"\\\\.pnp\\\\.[^\\\\\\/]+$\"]",
            "remarks": "If the test path matches any of the patterns, it will not be transformed.",
            "stability": "experimental",
            "summary": "An array of regexp pattern strings that are matched against all source file paths before transformation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 438
          },
          "name": "transformIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- []",
            "remarks": "If a module's path matches any of the patterns in this list, it\nwill not be automatically mocked by the module loader.",
            "stability": "experimental",
            "summary": "An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 446
          },
          "name": "unmockedModulePathPatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "remarks": "All errors will also\nstill be shown on the bottom after execution. Note that if there is only one test file being run\nit will default to true.",
            "stability": "experimental",
            "summary": "Indicates whether each individual test should be reported during the run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 454
          },
          "name": "verbose",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true",
            "stability": "experimental",
            "summary": "Whether to use watchman for file crawling."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 474
          },
          "name": "watchman",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- []",
            "remarks": "If the file path matches any of the patterns, when it is updated, it will not trigger\na re-run of tests.",
            "stability": "experimental",
            "summary": "An array of RegExp patterns that are matched against all source file paths before re-running tests in watch mode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 462
          },
          "name": "watchPathIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "-",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 468
          },
          "name": "watchPlugins",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.WatchPlugin"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/javascript/jest:JestConfigOptions"
    },
    "projen.javascript.JestDiscoverTestMatchPatternsForDirsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for discoverTestMatchPatternsForDirs."
      },
      "fqn": "projen.javascript.JestDiscoverTestMatchPatternsForDirsOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 494
      },
      "name": "JestDiscoverTestMatchPatternsForDirsOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Defaults to \"[jt]s?(x)\".",
            "stability": "experimental",
            "summary": "The file extension pattern to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 496
          },
          "name": "fileExtensionPattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/jest:JestDiscoverTestMatchPatternsForDirsOptions"
    },
    "projen.javascript.JestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.JestOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 535
      },
      "name": "JestOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No separate config file, jest settings are stored in package.json",
            "stability": "experimental",
            "summary": "Path to JSON config file for Jest."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 596
          },
          "name": "configFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "use jestConfig.collectCoverage",
            "remarks": "Deprecated",
            "stability": "deprecated",
            "summary": "Collect coverage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 541
          },
          "name": "coverage",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include the `text` coverage reporter, which means that coverage summary is printed at the end of the jest execution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 549
          },
          "name": "coverageText",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no extra options",
            "stability": "experimental",
            "summary": "Additional options to pass to the Jest CLI invocation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 608
          },
          "name": "extraCliOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[\"/node_modules/\"]",
            "deprecated": "use jestConfig.coveragePathIgnorePatterns or jestConfig.testPathIgnorePatterns respectively",
            "stability": "deprecated",
            "summary": "Defines `testPathIgnorePatterns` and `coveragePathIgnorePatterns`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 556
          },
          "name": "ignorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default jest configuration",
            "stability": "experimental",
            "summary": "Jest configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 602
          },
          "name": "jestConfig",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.JestConfigOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- installs the latest jest version",
            "remarks": "Note that same version is used as version of `@types/jest` and `ts-jest` (if Typescript in use), so given version should work also for those.",
            "stability": "experimental",
            "summary": "The version of jest to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 589
          },
          "name": "jestVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Output directory is `test-reports/`.",
            "stability": "experimental",
            "summary": "Result processing with jest-junit."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 565
          },
          "name": "junitReporting",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true",
            "stability": "experimental",
            "summary": "Pass with no tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 614
          },
          "name": "passWithNoTests",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Preserve the default Jest reporter when additional reporters are added."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 572
          },
          "name": "preserveDefaultReporters",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- ALWAYS",
            "stability": "experimental",
            "summary": "Whether to update snapshots in task \"test\" (which is executed in task \"build\" and build workflows), or create a separate task \"test:update\" for updating snapshots."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/jest.ts",
            "line": 580
          },
          "name": "updateSnapshot",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.UpdateSnapshot"
          }
        }
      ],
      "symbolId": "src/javascript/jest:JestOptions"
    },
    "projen.javascript.JestReporter": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.JestReporter",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/jest.ts",
          "line": 645
        },
        "parameters": [
          {
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 644
      },
      "name": "JestReporter",
      "namespace": "javascript",
      "symbolId": "src/javascript/jest:JestReporter"
    },
    "projen.javascript.LicenseChecker": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Enforces allowed licenses used by dependencies."
      },
      "fqn": "projen.javascript.LicenseChecker",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/license-checker.ts",
          "line": 54
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.javascript.LicenseCheckerOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/license-checker.ts",
        "line": 51
      },
      "name": "LicenseChecker",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/license-checker.ts",
            "line": 52
          },
          "name": "task",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/javascript/license-checker:LicenseChecker"
    },
    "projen.javascript.LicenseCheckerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options to configure the license checker."
      },
      "fqn": "projen.javascript.LicenseCheckerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/license-checker.ts",
        "line": 9
      },
      "name": "LicenseCheckerOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no licenses are allowed",
            "remarks": "For the license check to pass, all detected licenses MUST be in this list.\nOnly one of `allowedLicenses` and `prohibitedLicenses` can be provided and must not be empty.",
            "stability": "experimental",
            "summary": "List of SPDX license identifiers that are allowed to be used."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/license-checker.ts",
            "line": 29
          },
          "name": "allow",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no licenses are prohibited",
            "remarks": "For the license check to pass, no detected licenses can be in this list.\nOnly one of `allowedLicenses` and `prohibitedLicenses` can be provided and must not be empty.",
            "stability": "experimental",
            "summary": "List of SPDX license identifiers that are prohibited to be used."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/license-checker.ts",
            "line": 38
          },
          "name": "deny",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Check development dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/license-checker.ts",
            "line": 20
          },
          "name": "development",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Check production dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/license-checker.ts",
            "line": 14
          },
          "name": "production",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"check-licenses\"",
            "stability": "experimental",
            "summary": "The name of the task that is added to check licenses."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/license-checker.ts",
            "line": 45
          },
          "name": "taskName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/license-checker:LicenseCheckerOptions"
    },
    "projen.javascript.NodePackage": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Represents the npm `package.json` file."
      },
      "fqn": "projen.javascript.NodePackage",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/node-package.ts",
          "line": 576
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.NodePackageOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 441
      },
      "methods": [
        {
          "docs": {
            "returns": "A NodePackage, or undefined",
            "stability": "experimental",
            "summary": "Returns the `NodePackage` instance associated with a project or `undefined` if there is no NodePackage."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 448
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The project."
              },
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.javascript.NodePackage"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 807
          },
          "name": "addBin",
          "parameters": [
            {
              "name": "bins",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Bundled dependencies will be added as normal dependencies as well as to the\n`bundledDependencies` section of your `package.json`.",
            "stability": "experimental",
            "summary": "Defines bundled dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 776
          },
          "name": "addBundledDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Defines normal dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 716
          },
          "name": "addDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Defines development/test dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 731
          },
          "name": "addDevDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds an `engines` requirement to your package."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 793
          },
          "name": "addEngine",
          "parameters": [
            {
              "docs": {
                "summary": "The engine (e.g. `node`)."
              },
              "name": "engine",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The semantic version requirement (e.g. `^10`)."
              },
              "name": "version",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "custom": {
              "escape": "true"
            },
            "stability": "experimental",
            "summary": "Directly set fields in `package.json`."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 849
          },
          "name": "addField",
          "parameters": [
            {
              "docs": {
                "summary": "field name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "field value."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds keywords to package.json (deduplicated)."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 801
          },
          "name": "addKeywords",
          "parameters": [
            {
              "docs": {
                "summary": "The keywords to add."
              },
              "name": "keywords",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Defines resolutions for dependencies to change the normally resolved version of a dependency to something else."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 869
          },
          "name": "addPackageResolutions",
          "parameters": [
            {
              "docs": {
                "remarks": "Specify a version or\nrange with this syntax:\n`module@^7`",
                "summary": "Names resolutions to be added."
              },
              "name": "resolutions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "When adding peer dependencies, a devDependency will also be added on the\npinned version of the declared peer. This will ensure that you are testing\nyour code against the minimum version required from your consumers.",
            "stability": "experimental",
            "summary": "Defines peer dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 750
          },
          "name": "addPeerDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Sets the package version."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 857
          },
          "name": "addVersion",
          "parameters": [
            {
              "docs": {
                "summary": "Package version."
              },
              "name": "version",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "deprecated": "Use `project.tasks.tryFind(name)`",
            "stability": "deprecated",
            "summary": "Indicates if a script by the given name is defined."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 839
          },
          "name": "hasScript",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the script."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "remarks": "Order is *not* guaranteed.",
            "stability": "experimental",
            "summary": "Called after synthesis."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 921
          },
          "name": "postSynthesize",
          "overrides": "projen.Component"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Removes an npm script (always successful)."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 828
          },
          "name": "removeScript",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the script."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a npm package.json script."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 819
          },
          "name": "setScript",
          "parameters": [
            {
              "docs": {
                "summary": "The script name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The command to execute."
              },
              "name": "command",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesizes files to the project output directory."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 916
          },
          "name": "synthesize",
          "overrides": "projen.Component"
        },
        {
          "docs": {
            "custom": {
              "remarks": "This method will first look through the current project's dependencies.\nIf found and semantically valid (not '*'), that will be used.\nOtherwise, it will fall back to locating a `package.json` manifest for the dependency\nthrough node's internal resolution reading the version from there."
            },
            "stability": "experimental",
            "summary": "Attempt to resolve the currently installed version for a given dependency."
          },
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 900
          },
          "name": "tryResolveDependencyVersion",
          "parameters": [
            {
              "docs": {
                "summary": "Dependency to resolve for."
              },
              "name": "dependencyName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "NodePackage",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Allow project to take library dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 466
          },
          "name": "allowLibraryDependencies",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The module's entrypoint (e.g. `lib/index.js`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 461
          },
          "name": "entrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The package.json file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 565
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Renders `yarn install` or `npm install` with lockfile update (not frozen)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 885
          },
          "name": "installAndUpdateLockfileCommand",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The task for installing project dependencies (frozen)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 560
          },
          "name": "installCiTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns the command to execute in order to install all dependencies (always frozen)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 878
          },
          "name": "installCommand",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The task for installing project dependencies (non-frozen)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 555
          },
          "name": "installTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the lock file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 550
          },
          "name": "lockFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "use `addField(x, y)`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 476
          },
          "name": "manifest",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "npm package access level."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 540
          },
          "name": "npmAccess",
          "type": {
            "fqn": "projen.javascript.NpmAccess"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Should provenance statements be generated when package is published."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 545
          },
          "name": "npmProvenance",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The npm registry host (e.g. `registry.npmjs.org`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 515
          },
          "name": "npmRegistry",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "npm registry (e.g. `https://registry.npmjs.org`). Use `npmRegistryHost` to get just the host name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 510
          },
          "name": "npmRegistryUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The package manager to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 471
          },
          "name": "packageManager",
          "type": {
            "fqn": "projen.javascript.NodePackageManager"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the npm package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 456
          },
          "name": "packageName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "use `project.projenCommand` instead.",
            "stability": "deprecated",
            "summary": "The command which executes \"projen\"."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 944
          },
          "name": "projenCommand",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The version of Bun to use if using Bun as a package manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 500
          },
          "name": "bunVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- undefined",
            "remarks": "This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact",
            "stability": "experimental",
            "summary": "Options for npm packages using AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 528
          },
          "name": "codeArtifactOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.CodeArtifactOptions"
          }
        },
        {
          "docs": {
            "remarks": "`undefined` if this package is not licensed.",
            "stability": "experimental",
            "summary": "The SPDX license of this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 505
          },
          "name": "license",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "The value indicates the package is incompatible with newer versions.",
            "stability": "experimental",
            "summary": "Maximum node version supported by this package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 490
          },
          "name": "maxNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "This value indicates the package is incompatible with older versions.",
            "stability": "experimental",
            "summary": "The minimum node version required by this package to function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 483
          },
          "name": "minNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "GitHub secret which contains the NPM token to use when publishing packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 520
          },
          "name": "npmTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The version of PNPM to use if using PNPM as a package manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 495
          },
          "name": "pnpmVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Options for privately hosted scoped packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 535
          },
          "name": "scopedPackagesOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.ScopedPackagesOptions"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/javascript/node-package:NodePackage"
    },
    "projen.javascript.NodePackageManager": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "The node package manager to use."
      },
      "fqn": "projen.javascript.NodePackageManager",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 1668
      },
      "members": [
        {
          "docs": {
            "deprecated": "For `yarn` 1.x use `YARN_CLASSIC` for `yarn` >= 2 use `YARN_BERRY`. Currently, `NodePackageManager.YARN` means `YARN_CLASSIC`. In the future, we might repurpose it to mean `YARN_BERRY`.",
            "stability": "deprecated",
            "summary": "Use `yarn` as the package manager."
          },
          "name": "YARN"
        },
        {
          "docs": {
            "deprecated": "use YARN_BERRY instead",
            "stability": "deprecated",
            "summary": "Use `yarn` versions >= 2 as the package manager."
          },
          "name": "YARN2"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Use `yarn` 1.x as the package manager."
          },
          "name": "YARN_CLASSIC"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Use `yarn` versions >= 2 as the package manager."
          },
          "name": "YARN_BERRY"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Use `npm` as the package manager."
          },
          "name": "NPM"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Use `pnpm` as the package manager."
          },
          "name": "PNPM"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Use `bun` as the package manager."
          },
          "name": "BUN"
        }
      ],
      "name": "NodePackageManager",
      "namespace": "javascript",
      "symbolId": "src/javascript/node-package:NodePackageManager"
    },
    "projen.javascript.NodePackageOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.NodePackageOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 32
      },
      "name": "NodePackageOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This is normally only allowed for libraries. For apps, there's no meaning\nfor specifying these.",
            "stability": "experimental",
            "summary": "Allow the project to include `peerDependencies` and `bundledDependencies`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 126
          },
          "name": "allowLibraryDependencies",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Author's e-mail."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 196
          },
          "name": "authorEmail",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Author's name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 191
          },
          "name": "authorName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Is the author an organization."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 206
          },
          "name": "authorOrganization",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Author's URL / Website."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 201
          },
          "name": "authorUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 157
          },
          "name": "autoDetectBin",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can use this option to add/customize how binaries are represented in\nyour `package.json`, but unless `autoDetectBin` is `false`, every\nexecutable file under `bin` will automatically be added to this section.",
            "stability": "experimental",
            "summary": "Binary programs vended with your module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 149
          },
          "name": "bin",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The email address to which issues should be reported."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 305
          },
          "name": "bugsEmail",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The url to your project's issue tracker."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 300
          },
          "name": "bugsUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "These modules will be\nadded both to the `dependencies` section and `bundledDependencies` section of\nyour `package.json`.\n\nThe recommendation is to only specify the module name here (e.g.\n`express`). This will behave similar to `yarn add` or `npm install` in the\nsense that it will add the module as a dependency to your `package.json`\nfile with the latest version (`^`). You can specify semver requirements in\nthe same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and\nthis will be what you `package.json` will eventually include.",
            "stability": "experimental",
            "summary": "List of dependencies to bundle into this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 112
          },
          "name": "bundledDeps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "stability": "experimental",
            "summary": "The version of Bun to use if using Bun as a package manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 263
          },
          "name": "bunVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact",
            "stability": "experimental",
            "summary": "Options for npm packages using AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 343
          },
          "name": "codeArtifactOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.CodeArtifactOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "[]",
            "example": "[ 'express', 'lodash', 'foo@^2' ]",
            "remarks": "The recommendation is to only specify the module name here (e.g.\n`express`). This will behave similar to `yarn add` or `npm install` in the\nsense that it will add the module as a dependency to your `package.json`\nfile with the latest version (`^`). You can specify semver requirements in\nthe same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and\nthis will be what you `package.json` will eventually include.",
            "stability": "experimental",
            "summary": "Runtime dependencies of this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 61
          },
          "name": "deps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "remarks": "It can be used when searching for packages in a package manager as well.\nSee https://classic.yarnpkg.com/en/docs/package-json/#toc-description",
            "stability": "experimental",
            "summary": "The description is just a string that helps people understand the purpose of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 45
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "[]",
            "example": "[ 'typescript', '@types/express' ]",
            "remarks": "These dependencies will only be\navailable in your build environment but will not be fetched when this\nmodule is consumed.\n\nThe recommendation is to only specify the module name here (e.g.\n`express`). This will behave similar to `yarn add` or `npm install` in the\nsense that it will add the module as a dependency to your `package.json`\nfile with the latest version (`^`). You can specify semver requirements in\nthe same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and\nthis will be what you `package.json` will eventually include.",
            "stability": "experimental",
            "summary": "Build dependencies for this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 79
          },
          "name": "devDeps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"lib/index.js\"",
            "remarks": "Set to an empty string to not include `main` in your package.json",
            "stability": "experimental",
            "summary": "Module entrypoint (`main` in `package.json`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 140
          },
          "name": "entrypoint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Package's Homepage / Website."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 211
          },
          "name": "homepage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Keywords to include in `package.json`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 131
          },
          "name": "keywords",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"Apache-2.0\"",
            "remarks": "See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.\nUse the `licensed` option if you want to no license to be specified.",
            "stability": "experimental",
            "summary": "License's SPDX identifier."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 272
          },
          "name": "license",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Indicates if a license should be added."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 279
          },
          "name": "licensed",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no maximum version is enforced",
            "remarks": "The value indicates that the package is incompatible with any newer versions of node.\nThis requirement is enforced via the engines field.\n\nYou will normally not need to set this option.\nConsider this option only if your package is known to not function with newer versions of node.",
            "stability": "experimental",
            "summary": "The maximum node version supported by this package. Most projects should not use this option."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 249
          },
          "name": "maxNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no minimum version is enforced",
            "remarks": "The value indicates that the package is incompatible with any older versions of node.\nThis requirement is enforced via the engines field.\n\nYou will normally not need to set this option, even if your package is incompatible with EOL versions of node.\nConsider this option only if your package depends on a specific feature, that is not available in other LTS versions.\nSetting this option has very high impact on the consumers of your package,\nas package managers will actively prevent usage with node versions you have marked as incompatible.\n\nTo change the node version of your CI/CD workflows, use `workflowNodeVersion`.",
            "stability": "experimental",
            "summary": "The minimum node version required by this package to function. Most projects should not use this option."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 235
          },
          "name": "minNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- for scoped packages (e.g. `foo@bar`), the default is\n`NpmAccess.RESTRICTED`, for non-scoped packages, the default is\n`NpmAccess.PUBLIC`.",
            "stability": "experimental",
            "summary": "Access level of the npm package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 314
          },
          "name": "npmAccess",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.NpmAccess"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true for public packages, false otherwise",
            "remarks": "A supported package manager is required to publish a package with npm provenance statements and\nyou will need to use a supported CI/CD provider.\n\nNote that the projen `Release` and `Publisher` components are using `publib` to publish packages,\nwhich is using npm internally and supports provenance statements independently of the package manager used.",
            "see": "https://docs.npmjs.com/generating-provenance-statements",
            "stability": "experimental",
            "summary": "Should provenance statements be generated when the package is published."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 328
          },
          "name": "npmProvenance",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "use `npmRegistryUrl` instead",
            "remarks": "Cannot be set together with `npmRegistryUrl`.",
            "stability": "deprecated",
            "summary": "The host name of the npm registry to publish to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 295
          },
          "name": "npmRegistry",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"https://registry.npmjs.org\"",
            "remarks": "Must be a URL (e.g. start with \"https://\" or \"http://\")",
            "stability": "experimental",
            "summary": "The base URL of the npm package registry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 288
          },
          "name": "npmRegistryUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"NPM_TOKEN\"",
            "stability": "experimental",
            "summary": "GitHub secret which contains the NPM token to use when publishing packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 335
          },
          "name": "npmTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "NodePackageManager.YARN_CLASSIC",
            "stability": "experimental",
            "summary": "The Node Package Manager used to execute scripts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 174
          },
          "name": "packageManager",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.NodePackageManager"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "- defaults to project name",
            "stability": "experimental",
            "summary": "The \"name\" in package.json."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 38
          },
          "name": "packageName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for `peerDeps`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 117
          },
          "name": "peerDependencyOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.PeerDependencyOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Dependencies listed here are required to\nbe installed (and satisfied) by the _consumer_ of this library. Using peer\ndependencies allows you to ensure that only a single module of a certain\nlibrary exists in the `node_modules` tree of your consumers.\n\nNote that prior to npm@7, peer dependencies are _not_ automatically\ninstalled, which means that adding peer dependencies to a library will be a\nbreaking change for your customers.\n\nUnless `peerDependencyOptions.pinnedDevDependency` is disabled (it is\nenabled by default), projen will automatically add a dev dependency with a\npinned version for each peer dependency. This will ensure that you build &\ntest your module against the lowest peer version required.",
            "stability": "experimental",
            "summary": "Peer dependencies for this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 98
          },
          "name": "peerDeps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"9\"",
            "stability": "experimental",
            "summary": "The version of PNPM to use if using PNPM as a package manager."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 256
          },
          "name": "pnpmVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository",
            "stability": "experimental",
            "summary": "The repository is the location where the actual code for your package lives."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 180
          },
          "name": "repository",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 186
          },
          "name": "repositoryDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- fetch all scoped packages from the public npm registry",
            "stability": "experimental",
            "summary": "Options for privately hosted scoped packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 350
          },
          "name": "scopedPackagesOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.ScopedPackagesOptions"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "deprecated": "use `project.addTask()` or `package.setScript()`",
            "remarks": "If a script has the same name as a standard script,\nthe standard script will be overwritten.\nAlso adds the script as a task.",
            "stability": "deprecated",
            "summary": "npm scripts to include."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 167
          },
          "name": "scripts",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Package's Stability."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 216
          },
          "name": "stability",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Yarn Berry v4 with all default options",
            "stability": "experimental",
            "summary": "Options for Yarn Berry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 357
          },
          "name": "yarnBerryOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnBerryOptions"
          }
        }
      ],
      "symbolId": "src/javascript/node-package:NodePackageOptions"
    },
    "projen.javascript.NodeProject": {
      "assembly": "projen",
      "base": "projen.github.GitHubProject",
      "docs": {
        "custom": {
          "pjid": "node"
        },
        "stability": "experimental",
        "summary": "Node.js project."
      },
      "fqn": "projen.javascript.NodeProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/node-project.ts",
          "line": 508
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.javascript.NodeProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/node-project.ts",
        "line": 379
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 907
          },
          "name": "addBins",
          "parameters": [
            {
              "name": "bins",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Bundled dependencies will be added as normal dependencies as well as to the\n`bundledDependencies` section of your `package.json`.",
            "stability": "experimental",
            "summary": "Defines bundled dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1199
          },
          "name": "addBundledDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "deprecated": "use `project.compileTask.exec()`",
            "stability": "deprecated",
            "summary": "DEPRECATED."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 952
          },
          "name": "addCompileCommand",
          "parameters": [
            {
              "name": "commands",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Defines normal dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1153
          },
          "name": "addDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Defines development/test dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1166
          },
          "name": "addDevDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Directly set fields in `package.json`."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 972
          },
          "name": "addFields",
          "parameters": [
            {
              "docs": {
                "summary": "The fields to set."
              },
              "name": "fields",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds keywords to package.json (deduplicated)."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 982
          },
          "name": "addKeywords",
          "parameters": [
            {
              "docs": {
                "summary": "The keywords to add."
              },
              "name": "keywords",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "custom": {
              "remarks": "If you are having trouble getting an ignore to populate, try using your construct or component's preSynthesize method to properly delay calling this method."
            },
            "stability": "experimental",
            "summary": "Adds patterns to be ignored by npm."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1211
          },
          "name": "addPackageIgnore",
          "overrides": "projen.Project",
          "parameters": [
            {
              "docs": {
                "summary": "The pattern to ignore."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "When adding peer dependencies, a devDependency will also be added on the\npinned version of the declared peer. This will ensure that you are testing\nyour code against the minimum version required from your consumers.",
            "stability": "experimental",
            "summary": "Defines peer dependencies."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1183
          },
          "name": "addPeerDeps",
          "parameters": [
            {
              "docs": {
                "remarks": "By default, the the dependency will\nbe installed in the next `npx projen` run and the version will be recorded\nin your `package.json` file. You can upgrade manually or using `yarn\nadd/upgrade`. If you wish to specify a version range use this syntax:\n`module@^7`.",
                "summary": "Names modules to install."
              },
              "name": "deps",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Replaces the contents of multiple npm package.json scripts."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 925
          },
          "name": "addScripts",
          "parameters": [
            {
              "docs": {
                "summary": "The scripts to set."
              },
              "name": "scripts",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "deprecated": "use `project.testTask.exec()`",
            "stability": "deprecated",
            "summary": "DEPRECATED."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 962
          },
          "name": "addTestCommand",
          "parameters": [
            {
              "name": "commands",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "deprecated": "Use `project.tasks.tryFind(name)`",
            "stability": "deprecated",
            "summary": "Indicates if a script by the name name is defined."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 944
          },
          "name": "hasScript",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the script."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Removes the npm script (always successful)."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 935
          },
          "name": "removeScript",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the script."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "returns": "Job steps",
            "stability": "experimental",
            "summary": "Returns the set of workflow steps which should be executed to bootstrap a workflow."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1072
          },
          "name": "renderWorkflowSetup",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.javascript.RenderWorkflowSetupOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "projen.github.workflows.JobStep"
                },
                "kind": "array"
              }
            }
          }
        },
        {
          "docs": {
            "remarks": "This will\ntypically be `npx projen TASK`.",
            "stability": "experimental",
            "summary": "Returns the shell command to execute in order to run a task."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1284
          },
          "name": "runTaskCommand",
          "overrides": "projen.Project",
          "parameters": [
            {
              "docs": {
                "summary": "The task for which the command is required."
              },
              "name": "task",
              "type": {
                "fqn": "projen.Task"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Replaces the contents of an npm package.json script."
          },
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 917
          },
          "name": "setScript",
          "parameters": [
            {
              "docs": {
                "summary": "The script name."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The command to execute."
              },
              "name": "command",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "NodeProject",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "deprecated": "use `package.allowLibraryDependencies`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 404
          },
          "name": "allowLibraryDependencies",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "remarks": "An npm tarball will be created under the `js`\nsubdirectory. For example, if this is set to `dist` (the default), the npm\ntarball will be placed under `dist/js/boom-boom-1.2.3.tg`.",
            "stability": "experimental",
            "summary": "The build output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 491
          },
          "name": "artifactsDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The location of the npm tarball after build (`${artifactsDirectory}/js`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 496
          },
          "name": "artifactsJavascriptDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 484
          },
          "name": "bundler",
          "type": {
            "fqn": "projen.javascript.Bundler"
          }
        },
        {
          "docs": {
            "deprecated": "use `package.entrypoint`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 411
          },
          "name": "entrypoint",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "use `package.addField(x, y)`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 480
          },
          "name": "manifest",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The .npmrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 393
          },
          "name": "npmrc",
          "type": {
            "fqn": "projen.javascript.NpmConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "API for managing the node package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 383
          },
          "name": "package",
          "type": {
            "fqn": "projen.javascript.NodePackage"
          }
        },
        {
          "docs": {
            "deprecated": "use `package.packageManager`",
            "stability": "deprecated",
            "summary": "The package manager to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 463
          },
          "name": "packageManager",
          "type": {
            "fqn": "projen.javascript.NodePackageManager"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 470
          },
          "name": "runScriptCommand",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 503
          },
          "name": "workflowBootstrapSteps",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 505
          },
          "name": "workflowPackageCache",
          "protected": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Component that sets up mergify for merging approved pull requests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 418
          },
          "name": "autoMerge",
          "optional": true,
          "type": {
            "fqn": "projen.github.AutoMerge"
          }
        },
        {
          "docs": {
            "remarks": "`undefined` if `buildWorkflow` is disabled.",
            "stability": "experimental",
            "summary": "The PR build GitHub workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 423
          },
          "name": "buildWorkflow",
          "optional": true,
          "type": {
            "fqn": "projen.build.BuildWorkflow"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The job ID of the build workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1291
          },
          "name": "buildWorkflowJobId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The Jest configuration (if enabled)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 475
          },
          "name": "jest",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.Jest"
          }
        },
        {
          "docs": {
            "remarks": "The value indicates the package is incompatible with newer versions.",
            "stability": "experimental",
            "summary": "Maximum node version supported by this package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 452
          },
          "name": "maxNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "This value indicates the package is incompatible with older versions.",
            "stability": "experimental",
            "summary": "The minimum node version required by this package to function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 443
          },
          "name": "minNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 456
          },
          "name": "nodeVersion",
          "optional": true,
          "protected": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The .npmignore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 388
          },
          "name": "npmignore",
          "optional": true,
          "type": {
            "fqn": "projen.IgnoreFile"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 506
          },
          "name": "prettier",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.Prettier"
          }
        },
        {
          "docs": {
            "deprecated": "use `release.publisher`.",
            "remarks": "This will be `undefined` if the project does not have a\nrelease workflow.",
            "stability": "deprecated",
            "summary": "Package publisher."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 431
          },
          "name": "publisher",
          "optional": true,
          "type": {
            "fqn": "projen.release.Publisher"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Release management."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 436
          },
          "name": "release",
          "optional": true,
          "type": {
            "fqn": "projen.release.Release"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The upgrade workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 501
          },
          "name": "upgradeWorkflow",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependencies"
          }
        }
      ],
      "symbolId": "src/javascript/node-project:NodeProject"
    },
    "projen.javascript.NodeProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.NodeProjectOptions",
      "interfaces": [
        "projen.github.GitHubProjectOptions",
        "projen.javascript.NodePackageOptions",
        "projen.release.ReleaseProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-project.ts",
        "line": 60
      },
      "name": "NodeProjectOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"main\"",
            "stability": "experimental",
            "summary": "The name of the main release branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 150
          },
          "name": "defaultReleaseBranch",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"dist\"",
            "stability": "experimental",
            "summary": "A directory which will contain build artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 315
          },
          "name": "artifactsDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true",
            "remarks": "Throw if set to true but `autoApproveOptions` are not defined.",
            "stability": "experimental",
            "summary": "Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 226
          },
          "name": "autoApproveUpgrades",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true if not a subproject",
            "stability": "experimental",
            "summary": "Define a GitHub workflow for building PRs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 96
          },
          "name": "buildWorkflow",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for PR build workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 100
          },
          "name": "buildWorkflowOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.BuildWorkflowOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"{ pullRequest: {}, workflowDispatch: {} }\"",
            "deprecated": "- Use `buildWorkflowOptions.workflowTriggers`",
            "stability": "deprecated",
            "summary": "Build workflow triggers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 331
          },
          "name": "buildWorkflowTriggers",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Triggers"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for `Bundler`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 308
          },
          "name": "bundlerOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.BundlerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no license checks are run during the build and all licenses will be accepted",
            "remarks": "This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered.",
            "stability": "experimental",
            "summary": "Configure which licenses should be deemed acceptable for use by dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 340
          },
          "name": "checkLicenses",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.LicenseCheckerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 121
          },
          "name": "codeCov",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- if this option is not specified, only public repositories are supported",
            "stability": "experimental",
            "summary": "Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 128
          },
          "name": "codeCovTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults to the value of authorName or \"\" if `authorName` is undefined.",
            "stability": "experimental",
            "summary": "License copyright owner."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 69
          },
          "name": "copyrightOwner",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- current year",
            "stability": "experimental",
            "summary": "The copyright years to put in the LICENSE file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 76
          },
          "name": "copyrightPeriod",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Cannot be used in conjunction with `depsUpgrade`.",
            "stability": "experimental",
            "summary": "Use dependabot to handle dependency upgrades."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 194
          },
          "name": "dependabot",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for dependabot."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 201
          },
          "name": "dependabotOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.DependabotOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Cannot be used in conjunction with `dependabot`.",
            "stability": "experimental",
            "summary": "Use tasks and github workflows to handle dependency upgrades."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 209
          },
          "name": "depsUpgrade",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for `UpgradeDependencies`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 216
          },
          "name": "depsUpgradeOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional entries to .gitignore."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 277
          },
          "name": "gitignore",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Setup jest unit tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 283
          },
          "name": "jest",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Jest options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 289
          },
          "name": "jestOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.JestOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "- Use `buildWorkflowOptions.mutableBuild`",
            "remarks": "This means\nthat any files synthesized by projen or e.g. test snapshots will always be up-to-date\nbefore a PR is merged.\n\nImplies that PR builds do not have anti-tamper checks.",
            "stability": "deprecated",
            "summary": "Automatically update files modified during builds to pull-request branches."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 113
          },
          "name": "mutableBuild",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "- use `project.addPackageIgnore`",
            "stability": "deprecated",
            "summary": "Additional entries to .npmignore."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 245
          },
          "name": "npmignore",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 234
          },
          "name": "npmignoreEnabled",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configuration options for .npmignore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 239
          },
          "name": "npmIgnoreOptions",
          "optional": true,
          "type": {
            "fqn": "projen.IgnoreFileOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 323
          },
          "name": "package",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Setup prettier."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 266
          },
          "name": "prettier",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Prettier options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 272
          },
          "name": "prettierOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.PrettierOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true if not a subproject",
            "stability": "experimental",
            "summary": "Indicates of \"projen\" should be installed as a devDependency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 90
          },
          "name": "projenDevDependency",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true if projenrcJson is false",
            "stability": "experimental",
            "summary": "Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 297
          },
          "name": "projenrcJs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options for .projenrc.js."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 303
          },
          "name": "projenrcJsOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.ProjenrcOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Defaults to the latest version.",
            "stability": "experimental",
            "summary": "Version of projen to install."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 83
          },
          "name": "projenVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include a GitHub pull request template."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 252
          },
          "name": "pullRequestTemplate",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default content",
            "stability": "experimental",
            "summary": "The contents of the pull request template."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 259
          },
          "name": "pullRequestTemplateContents",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true (false for subprojects)",
            "stability": "experimental",
            "summary": "Add release management to this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 143
          },
          "name": "release",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Automatically release to npm when new versions are introduced."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 170
          },
          "name": "releaseToNpm",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true if not a subproject",
            "deprecated": "see `release`.",
            "stability": "deprecated",
            "summary": "DEPRECATED: renamed to `release`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 136
          },
          "name": "releaseWorkflow",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"yarn install --frozen-lockfile && yarn projen\"",
            "stability": "experimental",
            "summary": "Workflow steps to use in order to bootstrap this repo."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 157
          },
          "name": "workflowBootstrapSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- GitHub Actions",
            "stability": "experimental",
            "summary": "The git identity to use in workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 164
          },
          "name": "workflowGitIdentity",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- `minNodeVersion` if set, otherwise `lts/*`.",
            "remarks": "Always use this option if your GitHub Actions workflows require a specific to run.",
            "stability": "experimental",
            "summary": "The node version used in GitHub Actions workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 179
          },
          "name": "workflowNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable Node.js package cache in GitHub workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 186
          },
          "name": "workflowPackageCache",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/node-project:NodeProjectOptions"
    },
    "projen.javascript.NpmAccess": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Npm package access level."
      },
      "fqn": "projen.javascript.NpmAccess",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 1712
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Package is public."
          },
          "name": "PUBLIC"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Package can only be accessed with credentials."
          },
          "name": "RESTRICTED"
        }
      ],
      "name": "NpmAccess",
      "namespace": "javascript",
      "symbolId": "src/javascript/node-package:NpmAccess"
    },
    "projen.javascript.NpmConfig": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "File representing the local NPM config in .npmrc."
      },
      "fqn": "projen.javascript.NpmConfig",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/npm-config.ts",
          "line": 35
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.NpmConfigOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/npm-config.ts",
        "line": 28
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "configure a generic property."
          },
          "locationInModule": {
            "filename": "src/javascript/npm-config.ts",
            "line": 64
          },
          "name": "addConfig",
          "parameters": [
            {
              "docs": {
                "summary": "the name of the property."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "the value of the property."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "configure a scoped registry."
          },
          "locationInModule": {
            "filename": "src/javascript/npm-config.ts",
            "line": 54
          },
          "name": "addRegistry",
          "parameters": [
            {
              "docs": {
                "summary": "the URL of the registry to use."
              },
              "name": "url",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "leave empty for the default registry",
                "summary": "the scope the registry is used for;"
              },
              "name": "scope",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "NpmConfig",
      "namespace": "javascript",
      "symbolId": "src/javascript/npm-config:NpmConfig"
    },
    "projen.javascript.NpmConfigOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options to configure the local NPM config."
      },
      "fqn": "projen.javascript.NpmConfigOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/npm-config.ts",
        "line": 8
      },
      "name": "NpmConfigOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Omits empty objects and arrays."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/npm-config.ts",
            "line": 22
          },
          "name": "omitEmpty",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- use npmjs default registry",
            "remarks": "You can change this or add scoped registries using the addRegistry method",
            "stability": "experimental",
            "summary": "URL of the registry mirror to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/npm-config.ts",
            "line": 16
          },
          "name": "registry",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/npm-config:NpmConfigOptions"
    },
    "projen.javascript.PeerDependencyOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.PeerDependencyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 1657
      },
      "name": "PeerDependencyOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Automatically add a pinned dev dependency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 1662
          },
          "name": "pinnedDevDependency",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/node-package:PeerDependencyOptions"
    },
    "projen.javascript.Prettier": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Represents prettier configuration."
      },
      "fqn": "projen.javascript.Prettier",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/prettier.ts",
          "line": 375
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.javascript.PrettierOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 353
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 354
          },
          "name": "of",
          "parameters": [
            {
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.javascript.Prettier"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Defines Prettier ignore Patterns these patterns will be added to the file .prettierignore."
          },
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 426
          },
          "name": "addIgnorePattern",
          "parameters": [
            {
              "docs": {
                "summary": "filepatterns so exclude from prettier formatting."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "see": "https://prettier.io/docs/en/configuration.html#configuration-overrides",
            "stability": "experimental",
            "summary": "Add a prettier override."
          },
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 416
          },
          "name": "addOverride",
          "parameters": [
            {
              "name": "override",
              "type": {
                "fqn": "projen.javascript.PrettierOverride"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 437
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "Prettier",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns all Prettier overrides."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 433
          },
          "name": "overrides",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.PrettierOverride"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Direct access to the prettier settings."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 361
          },
          "name": "settings",
          "type": {
            "fqn": "projen.javascript.PrettierSettings"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The .prettierIgnore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 366
          },
          "name": "ignoreFile",
          "optional": true,
          "type": {
            "fqn": "projen.IgnoreFile"
          }
        }
      ],
      "symbolId": "src/javascript/prettier:Prettier"
    },
    "projen.javascript.PrettierOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for Prettier."
      },
      "fqn": "projen.javascript.PrettierOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 12
      },
      "name": "PrettierOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Defines an .prettierIgnore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 18
          },
          "name": "ignoreFile",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configuration options for .prettierignore file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 23
          },
          "name": "ignoreFileOptions",
          "optional": true,
          "type": {
            "fqn": "projen.IgnoreFileOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "see": "https://prettier.io/docs/en/configuration.html#configuration-overrides",
            "stability": "experimental",
            "summary": "Provide a list of patterns to override prettier configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 37
          },
          "name": "overrides",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.PrettierOverride"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default settings",
            "stability": "experimental",
            "summary": "Prettier settings."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 29
          },
          "name": "settings",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.PrettierSettings"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Write prettier configuration as YAML instead of JSON."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 43
          },
          "name": "yaml",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/prettier:PrettierOptions"
    },
    "projen.javascript.PrettierOverride": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.PrettierOverride",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 277
      },
      "name": "PrettierOverride",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Include these files in this override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 285
          },
          "name": "files",
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The options to apply for this override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 289
          },
          "name": "options",
          "type": {
            "fqn": "projen.javascript.PrettierSettings"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Exclude these files from this override."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 281
          },
          "name": "excludeFiles",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        }
      ],
      "symbolId": "src/javascript/prettier:PrettierOverride"
    },
    "projen.javascript.PrettierSettings": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://prettier.io/docs/en/options.html",
        "stability": "experimental",
        "summary": "Options to set in Prettier directly or through overrides."
      },
      "fqn": "projen.javascript.PrettierSettings",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 50
      },
      "name": "PrettierSettings",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "ArrowParens.ALWAYS",
            "stability": "experimental",
            "summary": "Include parentheses around a sole arrow function parameter."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 56
          },
          "name": "arrowParens",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.ArrowParens"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Put > of opening tags on the last line instead of on a new line."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 62
          },
          "name": "bracketSameLine",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Print spaces between brackets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 68
          },
          "name": "bracketSpacing",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "-1",
            "remarks": "This option cannot be used with --range-start and --range-end.",
            "stability": "experimental",
            "summary": "Print (to stderr) where a cursor at the given position would move to after formatting."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 75
          },
          "name": "cursorOffset",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "EmbeddedLanguageFormatting.AUTO",
            "stability": "experimental",
            "summary": "Control how Prettier formats quoted code embedded in the file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 81
          },
          "name": "embeddedLanguageFormatting",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.EmbeddedLanguageFormatting"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "EndOfLine.LF",
            "stability": "experimental",
            "summary": "Which end of line characters to apply."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 87
          },
          "name": "endOfLine",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.EndOfLine"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "remarks": "This will be used to do parser inference.",
            "stability": "experimental",
            "summary": "Specify the input filepath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 92
          },
          "name": "filepath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "HTMLWhitespaceSensitivity.CSS",
            "stability": "experimental",
            "summary": "How to handle whitespaces in HTML."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 98
          },
          "name": "htmlWhitespaceSensitivity",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.HTMLWhitespaceSensitivity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "format": "pragma into file's first docblock comment."
            },
            "default": "false",
            "stability": "experimental",
            "summary": "Insert."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 104
          },
          "name": "insertPragma",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Use single quotes in JSX."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 110
          },
          "name": "jsxSingleQuote",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Prettier automatically infers the parser from the input file path, so you shouldn’t have to change this setting.",
            "stability": "experimental",
            "summary": "Which parser to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 116
          },
          "name": "parser",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Multiple plugins can be passed as separate `--plugin`s.",
            "stability": "experimental",
            "summary": "Add a plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 122
          },
          "name": "plugins",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "Overrides default behavior when plugins are searched relatively to the location of\nPrettier.\nMultiple values are accepted.",
            "stability": "experimental",
            "summary": "Custom directory that contains prettier plugins in node_modules subdirectory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 131
          },
          "name": "pluginSearchDirs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "80",
            "stability": "experimental",
            "summary": "The line length where Prettier will try wrap."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 137
          },
          "name": "printWidth",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "ProseWrap.PRESERVE",
            "stability": "experimental",
            "summary": "How to wrap prose."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 143
          },
          "name": "proseWrap",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.ProseWrap"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "QuoteProps.ASNEEDED",
            "stability": "experimental",
            "summary": "Change when properties in objects are quoted."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 149
          },
          "name": "quoteProps",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.QuoteProps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "null",
            "remarks": "The range will extend forwards to the end of the selected statement.\nThis option cannot be used with --cursor-offset.",
            "stability": "experimental",
            "summary": "Format code ending at a given character offset (exclusive)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 157
          },
          "name": "rangeEnd",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "0",
            "remarks": "The range will extend backwards to the start of the first line containing the selected\nstatement.\nThis option cannot be used with --cursor-offset.",
            "stability": "experimental",
            "summary": "Format code starting at a given character offset."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 166
          },
          "name": "rangeStart",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 174
          },
          "name": "requirePragma",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Print semicolons."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 180
          },
          "name": "semi",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Use single quotes instead of double quotes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 186
          },
          "name": "singleQuote",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "2",
            "stability": "experimental",
            "summary": "Number of spaces per indentation level."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 192
          },
          "name": "tabWidth",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "TrailingComma.ES5",
            "stability": "experimental",
            "summary": "Print trailing commas wherever possible when multi-line."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 198
          },
          "name": "trailingComma",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TrailingComma"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Indent with tabs instead of spaces."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 204
          },
          "name": "useTabs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Indent script and style tags in Vue files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/prettier.ts",
            "line": 210
          },
          "name": "vueIndentScriptAndStyle",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/prettier:PrettierSettings"
    },
    "projen.javascript.Projenrc": {
      "assembly": "projen",
      "base": "projen.ProjenrcFile",
      "docs": {
        "remarks": "This component can be instantiated in any type of project\nand has no expectations around the project's main language.",
        "stability": "experimental",
        "summary": "A projenrc file written in JavaScript."
      },
      "fqn": "projen.javascript.Projenrc",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/projenrc.ts",
          "line": 26
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.ProjenrcOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/projenrc.ts",
        "line": 23
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/javascript/projenrc.ts",
            "line": 37
          },
          "name": "preSynthesize",
          "overrides": "projen.ProjenrcFile"
        }
      ],
      "name": "Projenrc",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The path of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/projenrc.ts",
            "line": 24
          },
          "name": "filePath",
          "overrides": "projen.ProjenrcFile",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/projenrc:Projenrc"
    },
    "projen.javascript.ProjenrcOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.ProjenrcOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/projenrc.ts",
        "line": 9
      },
      "name": "ProjenrcOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".projenrc.js\"",
            "stability": "experimental",
            "summary": "The name of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/projenrc.ts",
            "line": 14
          },
          "name": "filename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/projenrc:ProjenrcOptions"
    },
    "projen.javascript.ProseWrap": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.ProseWrap",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 299
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Wrap prose if it exceeds the print width."
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Do not wrap prose."
          },
          "name": "NEVER"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Wrap prose as-is."
          },
          "name": "PRESERVE"
        }
      ],
      "name": "ProseWrap",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:ProseWrap"
    },
    "projen.javascript.QuoteProps": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.QuoteProps",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 316
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Only add quotes around object properties where required."
          },
          "name": "ASNEEDED"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "If at least one property in an object requires quotes, quote all properties."
          },
          "name": "CONSISTENT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Respect the input use of quotes in object properties."
          },
          "name": "PRESERVE"
        }
      ],
      "name": "QuoteProps",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:QuoteProps"
    },
    "projen.javascript.RenderWorkflowSetupOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `renderWorkflowSetup()`."
      },
      "fqn": "projen.javascript.RenderWorkflowSetupOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-project.ts",
        "line": 1299
      },
      "name": "RenderWorkflowSetupOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- `{ name: \"Install dependencies\" }`",
            "example": "- { env: { NPM_TOKEN: \"token\" }} for installing from private npm registry.",
            "stability": "experimental",
            "summary": "Configure the install step in the workflow setup."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1308
          },
          "name": "installStepConfiguration",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobStepConfiguration"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Should the package lockfile be updated?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-project.ts",
            "line": 1313
          },
          "name": "mutable",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/node-project:RenderWorkflowSetupOptions"
    },
    "projen.javascript.RunBundleTask": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Options for BundlerOptions.runBundleTask."
      },
      "fqn": "projen.javascript.RunBundleTask",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 555
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Don't bundle automatically as part of the build."
          },
          "name": "MANUAL"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Bundle automatically before compilation."
          },
          "name": "PRE_COMPILE"
        },
        {
          "docs": {
            "remarks": "Thus will run compilation tasks (using tsc, etc.) before running file\nthrough bundling step.\n\nThis is only required unless you are using new experimental features that\nare not supported by `esbuild` but are supported by typescript's `tsc`\ncompiler. One example of such feature is `emitDecoratorMetadata`.\n\n```typescript\n// In a TypeScript project with output configured\n// to go to the \"lib\" directory:\nconst project = new TypeScriptProject({\n  name: \"test\",\n  defaultReleaseBranch: \"main\",\n  tsconfig: {\n    compilerOptions: {\n      outDir: \"lib\",\n    },\n  },\n  bundlerOptions: {\n    // ensure we compile with `tsc` before bundling\n    runBundleTask: RunBundleTask.POST_COMPILE,\n  },\n});\n\n// Tell the bundler to bundle the compiled results (from the \"lib\" directory)\nproject.bundler.addBundle(\"./lib/index.js\", {\n  platform: \"node\",\n  target: \"node18\",\n  sourcemap: false,\n  format: \"esm\",\n});\n```",
            "stability": "experimental",
            "summary": "Bundle automatically after compilation. This is useful if you want to bundle the compiled results."
          },
          "name": "POST_COMPILE"
        }
      ],
      "name": "RunBundleTask",
      "namespace": "javascript",
      "symbolId": "src/javascript/bundler:RunBundleTask"
    },
    "projen.javascript.ScopedPackagesOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for scoped packages."
      },
      "fqn": "projen.javascript.ScopedPackagesOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 424
      },
      "name": "ScopedPackagesOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "URL of the registry for scoped packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 435
          },
          "name": "registryUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"@angular\"",
            "stability": "experimental",
            "summary": "Scope of the packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 430
          },
          "name": "scope",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/node-package:ScopedPackagesOptions"
    },
    "projen.javascript.SourceMapMode": {
      "assembly": "projen",
      "docs": {
        "see": "https://esbuild.github.io/api/#sourcemap",
        "stability": "experimental",
        "summary": "SourceMap mode for esbuild."
      },
      "fqn": "projen.javascript.SourceMapMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/bundler.ts",
        "line": 608
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Default sourceMap mode - will generate a .js.map file alongside any generated .js file and add a special //# sourceMappingURL= comment to the bottom of the .js file pointing to the .js.map file."
          },
          "name": "DEFAULT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "External sourceMap mode - If you want to omit the special //# sourceMappingURL= comment from the generated .js file but you still want to generate the .js.map files."
          },
          "name": "EXTERNAL"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Inline sourceMap mode - If you want to insert the entire source map into the .js file instead of generating a separate .js.map file."
          },
          "name": "INLINE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Both sourceMap mode - If you want to have the effect of both inline and external simultaneously."
          },
          "name": "BOTH"
        }
      ],
      "name": "SourceMapMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/bundler:SourceMapMode"
    },
    "projen.javascript.TrailingComma": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.TrailingComma",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/prettier.ts",
        "line": 333
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Trailing commas wherever possible (including function arguments)."
          },
          "name": "ALL"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Trailing commas where valid in ES5 (objects, arrays, etc.)."
          },
          "name": "ES5"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "No trailing commas."
          },
          "name": "NONE"
        }
      ],
      "name": "TrailingComma",
      "namespace": "javascript",
      "symbolId": "src/javascript/prettier:TrailingComma"
    },
    "projen.javascript.Transform": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.Transform",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/jest.ts",
          "line": 500
        },
        "parameters": [
          {
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "primitive": "any"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 499
      },
      "name": "Transform",
      "namespace": "javascript",
      "symbolId": "src/javascript/jest:Transform"
    },
    "projen.javascript.TypeScriptCompilerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.TypeScriptCompilerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 183
      },
      "name": "TypeScriptCompilerOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "see": "https://www.typescriptlang.org/tsconfig#allowArbitraryExtensions",
            "stability": "experimental",
            "summary": "Suppress arbitrary extension import errors with the assumption that a bundler will be handling it."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 205
          },
          "name": "allowArbitraryExtensions",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Allows TypeScript files to import each other with TypeScript-specific extensions (`.ts`, `.mts`, `.tsx`). Requires `noEmit` or `emitDeclarationOnly`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 197
          },
          "name": "allowImportingTsExtensions",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Allow JavaScript files to be compiled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 189
          },
          "name": "allowJs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This does not affect code emit, just typechecking.",
            "stability": "experimental",
            "summary": "Allow default imports from modules with no default export."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 567
          },
          "name": "allowSyntheticDefaultImports",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "When:\n\n- `undefined` (default) provide suggestions as warnings to editors\n- `true` unreachable code is ignored\n- `false` raises compiler errors about unreachable code\n\nThese warnings are only about code which is provably unreachable due to the use of JavaScript syntax.",
            "see": "https://www.typescriptlang.org/tsconfig#allowUnreachableCode",
            "stability": "experimental",
            "summary": "Allow Unreachable Code."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 665
          },
          "name": "allowUnreachableCode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "When:\n\n- `undefined` (default) provide suggestions as warnings to editors\n- `true` unused labels are ignored\n- `false` raises compiler errors about unused labels\n\nLabels are very rare in JavaScript and typically indicate an attempt to write an object literal:\n\n```ts\nfunction verifyAge(age: number) {\n  // Forgot 'return' statement\n  if (age > 18) {\n    verified: true;\n//  ^^^^^^^^ Unused label.\n  }\n}\n```",
            "see": "https://www.typescriptlang.org/tsconfig#allowUnusedLabels",
            "stability": "experimental",
            "summary": "Allow Unused Labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 650
          },
          "name": "allowUnusedLabels",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Ensures that your files are parsed in the ECMAScript strict mode, and emit “use strict” for each source file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 213
          },
          "name": "alwaysStrict",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can define a root folder where you can do absolute file resolution.",
            "stability": "experimental",
            "summary": "Lets you set a base directory to resolve non-absolute module names."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 588
          },
          "name": "baseUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "ts-check": "at the top of all\nJavaScript files which are included in your project."
            },
            "remarks": "Works in tandem with [allowJs](https://www.typescriptlang.org/tsconfig#allowJs). When checkJs is enabled then\nerrors are reported in JavaScript files. This is the equivalent of including //",
            "see": "https://www.typescriptlang.org/tsconfig#checkJs",
            "stability": "experimental",
            "summary": "Check JS."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 676
          },
          "name": "checkJs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "see": "https://www.typescriptlang.org/tsconfig#customConditions",
            "stability": "experimental",
            "summary": "List of additional conditions that should succeed when TypeScript resolves from an `exports` or `imports` field of a `package.json`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 249
          },
          "name": "customConditions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "To be specified along with the above."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 225
          },
          "name": "declaration",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Offers a way to configure the root directory for where declaration files are emitted."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 219
          },
          "name": "declarationDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "{@link https://www.typescriptlang.org/tsconfig#declarationMap}",
            "stability": "experimental",
            "summary": "Generates a source map for .d.ts files which map back to the original .ts source file. This will allow editors such as VS Code to go to the original .ts file when using features like Go to Definition."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 232
          },
          "name": "declarationMap",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This flag is to enable support for a more accurate implementation of how modern JavaScript iterates through new concepts in older JavaScript runtimes.\n\nECMAScript 6 added several new iteration primitives: the for / of loop (for (el of arr)), Array spread ([a, ...b]), argument spread (fn(...args)), and Symbol.iterator.\ndownlevelIteration allows for these iteration primitives to be used more accurately in ES5 environments if a Symbol.iterator implementation is present.",
            "stability": "experimental",
            "summary": "Downleveling is TypeScript’s term for transpiling to an older version of JavaScript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 241
          },
          "name": "downlevelIteration",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Only emit .d.ts files; do not emit .js files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 399
          },
          "name": "emitDeclarationOnly",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "remarks": "Decorators are a language feature which hasn’t yet been fully ratified into the JavaScript specification.\nThis means that the implementation version in TypeScript may differ from the implementation in JavaScript when it it decided by TC39.\nYou can find out more about decorator support in TypeScript in the handbook.",
            "see": "https://www.typescriptlang.org/docs/handbook/decorators.html",
            "stability": "experimental",
            "summary": "Enables experimental support for decorators, which is in stage 2 of the TC39 standardization process."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 276
          },
          "name": "emitDecoratorMetadata",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Emit __importStar and __importDefault helpers for runtime babel ecosystem compatibility and enable --allowSyntheticDefaultImports for typesystem compatibility."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 258
          },
          "name": "esModuleInterop",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Specifies that optional property types should be interpreted exactly as written, meaning that `| undefined` is not added to the type Available with TypeScript 4.4 and newer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 574
          },
          "name": "exactOptionalPropertyTypes",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Enables experimental support for decorators, which is in stage 2 of the TC39 standardization process."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 265
          },
          "name": "experimentalDecorators",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Disallow inconsistently-cased references to the same file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 283
          },
          "name": "forceConsistentCasingInFileNames",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "remarks": "For TypeScript 5.0+ use `verbatimModuleSyntax` instead.\nPosed for deprecation upon TypeScript 5.5."
            },
            "default": "\"remove\"",
            "see": "https://www.typescriptlang.org/tsconfig#importsNotUsedAsValues",
            "stability": "experimental",
            "summary": "This flag works because you can use `import type` to explicitly create an `import` statement which should never be emitted into JavaScript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 303
          },
          "name": "importsNotUsedAsValues",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypeScriptImportsNotUsedAsValues"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This creates a series of .tsbuildinfo files in the same folder as your compilation output.\nThey are not used by your JavaScript at runtime and can be safely deleted.\nYou can read more about the flag in the 3.4 release notes.",
            "see": "https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#faster-subsequent-builds-with-the---incremental-flag\n\nTo control which folders you want to the files to be built to, use the config option tsBuildInfoFile.",
            "stability": "experimental",
            "summary": "Tells TypeScript to save information about the project graph from the last compilation to files stored on disk."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 619
          },
          "name": "incremental",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "When set, instead of writing out a .js.map file to provide source maps, TypeScript will embed the source map content in the .js files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 311
          },
          "name": "inlineSourceMap",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "When set, TypeScript will include the original content of the .ts file as an embedded string in the source map. This is often useful in the same cases as inlineSourceMap."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 319
          },
          "name": "inlineSources",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "babel": "/plugin-transform-typescript) would be safe."
            },
            "default": "false",
            "stability": "experimental",
            "summary": "Perform additional checks to ensure that separate compilation (such as with transpileModule or."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 342
          },
          "name": "isolatedModules",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Support JSX in .tsx files: \"react\", \"preserve\", \"react-native\" etc."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 349
          },
          "name": "jsx",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypeScriptJsxMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Declares the module specifier to be used for importing the jsx and jsxs factory functions when using jsx."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 356
          },
          "name": "jsxImportSource",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[ \"es2018\" ]",
            "remarks": "ES2016, ES5, ES2018).",
            "stability": "experimental",
            "summary": "Reference for type definitions / libraries to use (eg."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 363
          },
          "name": "lib",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"CommonJS\"",
            "remarks": "See https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules.",
            "stability": "experimental",
            "summary": "Sets the module system for the program."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 378
          },
          "name": "module",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"auto\"",
            "stability": "experimental",
            "summary": "This setting controls how TypeScript determines whether a file is a [script or a module](https://www.typescriptlang.org/docs/handbook/modules/theory.html#scripts-and-modules-in-javascript)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 370
          },
          "name": "moduleDetection",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypeScriptModuleDetection"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"node\"",
            "remarks": "Either \"Node\" for Node.js/io.js style resolution, or \"Classic\".",
            "stability": "experimental",
            "summary": "Determine how modules get resolved."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 385
          },
          "name": "moduleResolution",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypeScriptModuleResolution"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Do not emit outputs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 392
          },
          "name": "noEmit",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Do not emit compiler output files like JavaScript source code, source-maps or declarations if any errors were reported."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 407
          },
          "name": "noEmitOnError",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Ensures that any non-empty\ncase inside a switch statement includes either break or return. This means you won’t\naccidentally ship a case fallthrough bug.",
            "stability": "experimental",
            "summary": "Report errors for fallthrough cases in switch statements."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 416
          },
          "name": "noFallthroughCasesInSwitch",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "In some cases where no type annotations are present, TypeScript will fall back to a type of any for a variable when it cannot infer the type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 424
          },
          "name": "noImplicitAny",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "This also improves readability of the programmer's intent.\n\nAvailable with TypeScript 4.3 and newer.",
            "stability": "experimental",
            "summary": "Using `noImplicitOverride`, you can ensure that sub-classes never go out of sync as they are required to explicitly declare that they are overriding a member using the `override` keyword."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 435
          },
          "name": "noImplicitOverride",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "When enabled, TypeScript will check all code paths in a function to ensure they return a value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 443
          },
          "name": "noImplicitReturns",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Raise error on ‘this’ expressions with an implied ‘any’ type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 449
          },
          "name": "noImplicitThis",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Raise error on use of the dot syntax to access fields which are not defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 456
          },
          "name": "noPropertyAccessFromIndexSignature",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Raise error when accessing indexes on objects with unknown keys defined in index signatures."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 463
          },
          "name": "noUncheckedIndexedAccess",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Report errors on unused local variables."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 470
          },
          "name": "noUnusedLocals",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Report errors on unused parameters in functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 477
          },
          "name": "noUnusedParameters",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Output directory for the compiled files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 555
          },
          "name": "outDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "paths lets you declare how TypeScript should resolve an import in your require/imports.",
            "stability": "experimental",
            "summary": "A series of entries which re-map imports to lookup locations relative to the baseUrl, there is a larger coverage of paths in the handbook."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 595
          },
          "name": "paths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Allows importing modules with a ‘.json’ extension, which is a common practice in node projects. This includes generating a type for the import based on the static JSON shape."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 485
          },
          "name": "resolveJsonModule",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Forces TypeScript to consult the `exports` field of `package.json` files if it ever reads from a package in `node_modules`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 534
          },
          "name": "resolvePackageJsonExports",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Forces TypeScript to consult the `imports` field of `package.json` when performing a lookup that begins with `#` from a file that has a `package.json` as an ancestor."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 541
          },
          "name": "resolvePackageJsonImports",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Only use to control the output directory structure with `outDir`.",
            "stability": "experimental",
            "summary": "Specifies the root directory of input files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 562
          },
          "name": "rootDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Skip type checking of all declaration files (*.d.ts)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 492
          },
          "name": "skipLibCheck",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Enables the generation of sourcemap files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 326
          },
          "name": "sourceMap",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Specify the location where a debugger should locate TypeScript files instead of relative source locations."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 334
          },
          "name": "sourceRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Turning this on is equivalent to enabling all of the strict mode family\noptions, which are outlined below. You can then turn off individual strict mode family checks as\nneeded.",
            "stability": "experimental",
            "summary": "The strict flag enables a wide range of type checking behavior that results in stronger guarantees of program correctness."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 502
          },
          "name": "strict",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This can lead to unexpected errors at runtime.\nWhen strictNullChecks is true, null and undefined have their own distinct types and you’ll\nget a type error if you try to use them where a concrete value is expected.",
            "stability": "experimental",
            "summary": "When strictNullChecks is false, null and undefined are effectively ignored by the language."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 512
          },
          "name": "strictNullChecks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "When set to true, TypeScript will raise an error when a class property was declared but not set in the constructor."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 520
          },
          "name": "strictPropertyInitialization",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Do not emit declarations for code that has an `@internal` annotation in it’s JSDoc comment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 527
          },
          "name": "stripInternal",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"ES2018\"",
            "remarks": "You might choose to set\na lower target if your code is deployed to older environments, or a higher target if your\ncode is guaranteed to run in newer environments.",
            "stability": "experimental",
            "summary": "Modern browsers support all ES6 features, so ES6 is a good choice."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 550
          },
          "name": "target",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can read more about composite projects in the handbook.",
            "stability": "experimental",
            "summary": "This setting lets you specify a file for storing incremental compilation information as a part of composite projects which enables faster building of larger TypeScript codebases."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 625
          },
          "name": "tsBuildInfoFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig/#typeRoots",
            "stability": "experimental",
            "summary": "If typeRoots is specified, only packages under typeRoots will be included."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 601
          },
          "name": "typeRoots",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#types",
            "stability": "experimental",
            "summary": "If types is specified, only packages listed will be included in the global scope."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 607
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Change the type of the variable in a catch clause from any to unknown Available with TypeScript 4.4 and newer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 581
          },
          "name": "useUnknownInCatchVariables",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "see": "https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax",
            "stability": "experimental",
            "summary": "Simplifies TypeScript's handling of import/export `type` modifiers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 291
          },
          "name": "verbatimModuleSyntax",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/typescript-config:TypeScriptCompilerOptions"
    },
    "projen.javascript.TypeScriptImportsNotUsedAsValues": {
      "assembly": "projen",
      "docs": {
        "see": "https://www.typescriptlang.org/tsconfig#importsNotUsedAsValues",
        "stability": "experimental",
        "summary": "This flag controls how `import` works, there are 3 different options."
      },
      "fqn": "projen.javascript.TypeScriptImportsNotUsedAsValues",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 131
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The default behavior of dropping `import` statements which only reference types."
          },
          "name": "REMOVE"
        },
        {
          "docs": {
            "remarks": "This can cause imports/side-effects to be preserved.",
            "stability": "experimental",
            "summary": "Preserves all `import` statements whose values or types are never used."
          },
          "name": "PRESERVE"
        },
        {
          "docs": {
            "remarks": "This might be useful if you want to ensure no values are being accidentally imported, but still make side-effect imports explicit.",
            "stability": "experimental",
            "summary": "This preserves all imports (the same as the preserve option), but will error when a value import is only used as a type."
          },
          "name": "ERROR"
        }
      ],
      "name": "TypeScriptImportsNotUsedAsValues",
      "namespace": "javascript",
      "symbolId": "src/javascript/typescript-config:TypeScriptImportsNotUsedAsValues"
    },
    "projen.javascript.TypeScriptJsxMode": {
      "assembly": "projen",
      "docs": {
        "see": "https://www.typescriptlang.org/docs/handbook/jsx.html",
        "stability": "experimental",
        "summary": "Determines how JSX should get transformed into valid JavaScript."
      },
      "fqn": "projen.javascript.TypeScriptJsxMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 154
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Keeps the JSX as part of the output to be further consumed by another transform step (e.g. Babel)."
          },
          "name": "PRESERVE"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Converts JSX syntax into React.createElement, does not need to go through a JSX transformation before use, and the output will have a .js file extension."
          },
          "name": "REACT"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Keeps all JSX like 'preserve' mode, but output will have a .js extension."
          },
          "name": "REACT_NATIVE"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-1.html#react-17-jsx-factories",
            "stability": "experimental",
            "summary": "Passes `key` separately from props and always passes `children` as props (since React 17)."
          },
          "name": "REACT_JSX"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Same as `REACT_JSX` with additional debug data."
          },
          "name": "REACT_JSXDEV"
        }
      ],
      "name": "TypeScriptJsxMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/typescript-config:TypeScriptJsxMode"
    },
    "projen.javascript.TypeScriptModuleDetection": {
      "assembly": "projen",
      "docs": {
        "see": "https://www.typescriptlang.org/docs/handbook/modules/theory.html#scripts-and-modules-in-javascript",
        "stability": "experimental",
        "summary": "This setting controls how TypeScript determines whether a file is a script or a module."
      },
      "fqn": "projen.javascript.TypeScriptModuleDetection",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 103
      },
      "members": [
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig/#moduleDetection",
            "stability": "experimental",
            "summary": "TypeScript will not only look for import and export statements, but it will also check whether the \"type\" field in a package.json is set to \"module\" when running with module: nodenext or node16, and check whether the current file is a JSX file when running under jsx: react-jsx."
          },
          "name": "AUTO"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig/#moduleDetection",
            "stability": "experimental",
            "summary": "The same behavior as 4.6 and prior, usings import and export statements to determine whether a file is a module."
          },
          "name": "LEGACY"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig/#moduleDetection",
            "stability": "experimental",
            "summary": "Ensures that every non-declaration file is treated as a module."
          },
          "name": "FORCE"
        }
      ],
      "name": "TypeScriptModuleDetection",
      "namespace": "javascript",
      "symbolId": "src/javascript/typescript-config:TypeScriptModuleDetection"
    },
    "projen.javascript.TypeScriptModuleResolution": {
      "assembly": "projen",
      "docs": {
        "see": "https://www.typescriptlang.org/docs/handbook/module-resolution.html",
        "stability": "experimental",
        "summary": "Determines how modules get resolved."
      },
      "fqn": "projen.javascript.TypeScriptModuleResolution",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 51
      },
      "members": [
        {
          "docs": {
            "see": "https://www.typescriptlang.org/docs/handbook/module-resolution.html#classic",
            "stability": "experimental",
            "summary": "TypeScript's former default resolution strategy."
          },
          "name": "CLASSIC"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/docs/handbook/module-resolution.html#node",
            "stability": "experimental",
            "summary": "Resolution strategy which attempts to mimic the Node.js module resolution strategy at runtime."
          },
          "name": "NODE"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/docs/handbook/modules/reference.html#node10-formerly-known-as-node",
            "stability": "experimental",
            "summary": "`--moduleResolution node` was renamed to `node10` (keeping `node` as an alias for backward compatibility) in TypeScript 5.0. It reflects the CommonJS module resolution algorithm as it existed in Node.js versions earlier than v12. It should no longer be used."
          },
          "name": "NODE10"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#moduleResolution",
            "stability": "experimental",
            "summary": "Node.js’ ECMAScript Module Support from TypeScript 4.7 onwards."
          },
          "name": "NODE16"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#moduleResolution",
            "stability": "experimental",
            "summary": "Node.js’ ECMAScript Module Support from TypeScript 4.7 onwards."
          },
          "name": "NODE_NEXT"
        },
        {
          "docs": {
            "remarks": "from TypeScript 5.0 onwards.",
            "see": "https://www.typescriptlang.org/tsconfig#moduleResolution",
            "stability": "experimental",
            "summary": "Resolution strategy which attempts to mimic resolution patterns of modern bundlers;"
          },
          "name": "BUNDLER"
        }
      ],
      "name": "TypeScriptModuleResolution",
      "namespace": "javascript",
      "symbolId": "src/javascript/typescript-config:TypeScriptModuleResolution"
    },
    "projen.javascript.TypescriptConfig": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.TypescriptConfig",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/typescript-config.ts",
          "line": 728
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.javascript.TypescriptConfigOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 720
      },
      "methods": [
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#exclude",
            "stability": "experimental",
            "summary": "Add an exclude pattern to the `exclude` array of the TSConfig."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 886
          },
          "name": "addExclude",
          "parameters": [
            {
              "docs": {
                "summary": "The pattern to add."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "custom": {
              "remarks": "TypeScript 5.0+ is required to extend from more than one base `TypescriptConfig`."
            },
            "stability": "experimental",
            "summary": "Extend from base `TypescriptConfig` instance."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 860
          },
          "name": "addExtends",
          "parameters": [
            {
              "docs": {
                "summary": "Base `TypescriptConfig` instance."
              },
              "name": "value",
              "type": {
                "fqn": "projen.javascript.TypescriptConfig"
              }
            }
          ]
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#include",
            "stability": "experimental",
            "summary": "Add an include pattern to the `include` array of the TSConfig."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 874
          },
          "name": "addInclude",
          "parameters": [
            {
              "docs": {
                "summary": "The pattern to add."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 913
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#exclude",
            "stability": "experimental",
            "summary": "Remove an exclude pattern from the `exclude` array of the TSConfig."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 909
          },
          "name": "removeExclude",
          "parameters": [
            {
              "docs": {
                "summary": "The pattern to remove."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "see": "https://www.typescriptlang.org/tsconfig#include",
            "stability": "experimental",
            "summary": "Remove an include pattern from the `include` array of the TSConfig."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 898
          },
          "name": "removeInclude",
          "parameters": [
            {
              "docs": {
                "summary": "The pattern to remove."
              },
              "name": "pattern",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "custom": {
              "remarks": "This will only resolve the relative path from this config to another given\nan absolute path as input. Any non-absolute path or other string will be returned as is.\nThis is to preserve manually specified relative paths as well as npm import paths."
            },
            "stability": "experimental",
            "summary": "Resolve valid TypeScript extends paths relative to this config."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 796
          },
          "name": "resolveExtendsPath",
          "parameters": [
            {
              "docs": {
                "summary": "Path to resolve against."
              },
              "name": "configPath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "TypescriptConfig",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 768
          },
          "name": "exclude",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Array of base `tsconfig.json` paths. Any absolute paths are resolved relative to this instance, while any relative paths are used as is."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 846
          },
          "name": "extends",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 726
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 725
          },
          "name": "fileName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 764
          },
          "name": "include",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 722
          },
          "name": "compilerOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypeScriptCompilerOptions"
          }
        }
      ],
      "symbolId": "src/javascript/typescript-config:TypescriptConfig"
    },
    "projen.javascript.TypescriptConfigExtends": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Container for `TypescriptConfig` `tsconfig.json` base configuration(s). Extending from more than one base config file requires TypeScript 5.0+."
      },
      "fqn": "projen.javascript.TypescriptConfigExtends",
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 683
      },
      "methods": [
        {
          "docs": {
            "custom": {
              "remarks": "TypeScript 5.0+ is required to specify more than one value in `paths`."
            },
            "stability": "experimental",
            "summary": "Factory for creation from array of file paths."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 692
          },
          "name": "fromPaths",
          "parameters": [
            {
              "docs": {
                "summary": "Absolute or relative paths to base `tsconfig.json` files."
              },
              "name": "paths",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.javascript.TypescriptConfigExtends"
            }
          },
          "static": true
        },
        {
          "docs": {
            "custom": {
              "remarks": "TypeScript 5.0+ is required to specify more than on value in `configs`."
            },
            "stability": "experimental",
            "summary": "Factory for creation from array of other `TypescriptConfig` instances."
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 704
          },
          "name": "fromTypescriptConfigs",
          "parameters": [
            {
              "docs": {
                "summary": "Base `TypescriptConfig` instances."
              },
              "name": "configs",
              "type": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.javascript.TypescriptConfig"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.javascript.TypescriptConfigExtends"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 715
          },
          "name": "toJSON",
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          }
        }
      ],
      "name": "TypescriptConfigExtends",
      "namespace": "javascript",
      "symbolId": "src/javascript/typescript-config:TypescriptConfigExtends"
    },
    "projen.javascript.TypescriptConfigOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.TypescriptConfigOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/typescript-config.ts",
        "line": 9
      },
      "name": "TypescriptConfigOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "remarks": "Must provide either `extends` or `compilerOptions` (or both)."
            },
            "stability": "experimental",
            "summary": "Compiler options to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 43
          },
          "name": "compilerOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypeScriptCompilerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- node_modules is excluded by default",
            "stability": "experimental",
            "summary": "Filters results from the \"include\" option."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 35
          },
          "name": "exclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "remarks": "Must provide either `extends` or `compilerOptions` (or both)."
            },
            "stability": "experimental",
            "summary": "Base `tsconfig.json` configuration(s) to inherit from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 21
          },
          "name": "extends",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypescriptConfigExtends"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tsconfig.json\"",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 13
          },
          "name": "fileName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- all .ts files recursively",
            "stability": "experimental",
            "summary": "Specifies a list of glob patterns that match TypeScript files to be included in compilation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/typescript-config.ts",
            "line": 28
          },
          "name": "include",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/javascript/typescript-config:TypescriptConfigOptions"
    },
    "projen.javascript.UpdateSnapshot": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.UpdateSnapshot",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 624
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Always update snapshots in \"test\" task."
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Never update snapshots in \"test\" task and create a separate \"test:update\" task."
          },
          "name": "NEVER"
        }
      ],
      "name": "UpdateSnapshot",
      "namespace": "javascript",
      "symbolId": "src/javascript/jest:UpdateSnapshot"
    },
    "projen.javascript.UpgradeDependencies": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Upgrade node project dependencies."
      },
      "fqn": "projen.javascript.UpgradeDependencies",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/upgrade-dependencies.ts",
          "line": 170
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.UpgradeDependenciesOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/upgrade-dependencies.ts",
        "line": 137
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add steps to execute a successful build."
          },
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 242
          },
          "name": "addPostBuildSteps",
          "parameters": [
            {
              "docs": {
                "summary": "workflow steps."
              },
              "name": "steps",
              "type": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "UpgradeDependencies",
      "namespace": "javascript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "A task run after the upgrade task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 160
          },
          "name": "postUpgradeTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The upgrade task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 155
          },
          "name": "upgradeTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "remarks": "One workflow per branch.",
            "stability": "experimental",
            "summary": "The workflows that execute the upgrades."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 141
          },
          "name": "workflows",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.GithubWorkflow"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Container definitions for the upgrade workflow."
          },
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 150
          },
          "name": "containerOptions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ContainerOptions"
          }
        }
      ],
      "symbolId": "src/javascript/upgrade-dependencies:UpgradeDependencies"
    },
    "projen.javascript.UpgradeDependenciesOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `UpgradeDependencies`."
      },
      "fqn": "projen.javascript.UpgradeDependenciesOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/upgrade-dependencies.ts",
        "line": 32
      },
      "name": "UpgradeDependenciesOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- Nothing is excluded.",
            "stability": "experimental",
            "summary": "List of package names to exclude during the upgrade."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 38
          },
          "name": "exclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Everything is included.",
            "stability": "experimental",
            "summary": "List of package names to include during the upgrade."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 45
          },
          "name": "include",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "By default, deprecated versions will be excluded from upgrades.",
            "see": "https://github.com/raineorshine/npm-check-updates?tab=readme-ov-file#options",
            "stability": "experimental",
            "summary": "Include deprecated packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 77
          },
          "name": "includeDeprecatedVersions",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"upgrade dependencies\"",
            "stability": "experimental",
            "summary": "Title of the pull request to use (should be all lower-case)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 110
          },
          "name": "pullRequestTitle",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "By default, the upgrade workflow will adhere to version constraints from peer dependencies.\nSometimes this is not desirable and can be disabled.",
            "see": "https://github.com/raineorshine/npm-check-updates#peer",
            "stability": "experimental",
            "summary": "Check peer dependencies of installed packages and filter updates to compatible versions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 66
          },
          "name": "satisfyPeerDependencies",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'chore'",
            "stability": "experimental",
            "summary": "The semantic commit type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 117
          },
          "name": "semanticCommit",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Add Signed-off-by line by the committer at the end of the commit log message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 124
          },
          "name": "signoff",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"minor\"",
            "see": "https://github.com/raineorshine/npm-check-updates#target",
            "stability": "experimental",
            "summary": "Determines the target version to upgrade dependencies to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 54
          },
          "name": "target",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"upgrade\".",
            "remarks": "This will also be the workflow name.",
            "stability": "experimental",
            "summary": "The name of the task that will be created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 103
          },
          "name": "taskName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- All dependency types.",
            "stability": "experimental",
            "summary": "Specify which dependency types the upgrade should operate on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 131
          },
          "name": "types",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.DependencyType"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- true for root projects, false for subprojects.",
            "remarks": "If this is `false`, only a local projen task is created, which can be executed manually to\nupgrade the dependencies.",
            "stability": "experimental",
            "summary": "Include a github workflow for creating PR's that upgrades the required dependencies, either by manual dispatch, or by a schedule."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 88
          },
          "name": "workflow",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options.",
            "remarks": "Only applies if `workflow` is true.",
            "stability": "experimental",
            "summary": "Options for the github workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 95
          },
          "name": "workflowOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesWorkflowOptions"
          }
        }
      ],
      "symbolId": "src/javascript/upgrade-dependencies:UpgradeDependenciesOptions"
    },
    "projen.javascript.UpgradeDependenciesSchedule": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "How often to check for new versions and raise pull requests for version upgrades."
      },
      "fqn": "projen.javascript.UpgradeDependenciesSchedule",
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/upgrade-dependencies.ts",
        "line": 629
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Create a schedule from a raw cron expression."
          },
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 664
          },
          "name": "expressions",
          "parameters": [
            {
              "name": "cron",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.javascript.UpgradeDependenciesSchedule"
            }
          },
          "static": true
        }
      ],
      "name": "UpgradeDependenciesSchedule",
      "namespace": "javascript",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "At 00:00."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 638
          },
          "name": "DAILY",
          "static": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesSchedule"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "At 00:00 on day-of-month 1."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 657
          },
          "name": "MONTHLY",
          "static": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesSchedule"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "Disables automatic upgrades."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 633
          },
          "name": "NEVER",
          "static": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesSchedule"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "At 00:00 on every day-of-week from Monday through Friday."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 643
          },
          "name": "WEEKDAY",
          "static": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesSchedule"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "At 00:00 on Monday."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 650
          },
          "name": "WEEKLY",
          "static": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesSchedule"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 668
          },
          "name": "cron",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/javascript/upgrade-dependencies:UpgradeDependenciesSchedule"
    },
    "projen.javascript.UpgradeDependenciesWorkflowOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `UpgradeDependencies.workflowOptions`."
      },
      "fqn": "projen.javascript.UpgradeDependenciesWorkflowOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/upgrade-dependencies.ts",
        "line": 548
      },
      "name": "UpgradeDependenciesWorkflowOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no assignees",
            "stability": "experimental",
            "summary": "Assignees to add on the PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 581
          },
          "name": "assignees",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- All release branches configured for the project.",
            "stability": "experimental",
            "summary": "List of branches to create PR's for."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 595
          },
          "name": "branches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "stability": "experimental",
            "summary": "Job container options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 588
          },
          "name": "container",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.ContainerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"github-actions@github.com\"",
            "stability": "experimental",
            "summary": "The git identity to use for commits."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 601
          },
          "name": "gitIdentity",
          "optional": true,
          "type": {
            "fqn": "projen.github.GitIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no labels.",
            "stability": "experimental",
            "summary": "Labels to apply on the PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 574
          },
          "name": "labels",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "`{ contents: JobPermission.READ }`",
            "stability": "experimental",
            "summary": "Permissions granted to the upgrade job To limit job permissions for `contents`, the desired permissions have to be explicitly set, e.g.: `{ contents: JobPermission.NONE }`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 623
          },
          "name": "permissions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermissions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- personal access token named PROJEN_GITHUB_TOKEN",
            "remarks": "When using the default github token, PR's created by this workflow\nwill not trigger any subsequent workflows (i.e the build workflow), so\nprojen requires API access to be provided through e.g. a personal\naccess token or other method.",
            "see": "https://github.com/peter-evans/create-pull-request/issues/48",
            "stability": "experimental",
            "summary": "Choose a method for authenticating with GitHub for creating the PR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 567
          },
          "name": "projenCredentials",
          "optional": true,
          "type": {
            "fqn": "projen.github.GithubCredentials"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 609
          },
          "name": "runsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 616
          },
          "name": "runsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "UpgradeDependenciesSchedule.DAILY",
            "stability": "experimental",
            "summary": "Schedule to run on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/upgrade-dependencies.ts",
            "line": 554
          },
          "name": "schedule",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.UpgradeDependenciesSchedule"
          }
        }
      ],
      "symbolId": "src/javascript/upgrade-dependencies:UpgradeDependenciesWorkflowOptions"
    },
    "projen.javascript.WatchPlugin": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.WatchPlugin",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/jest.ts",
          "line": 518
        },
        "parameters": [
          {
            "name": "name",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "primitive": "any"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/jest.ts",
        "line": 517
      },
      "name": "WatchPlugin",
      "namespace": "javascript",
      "symbolId": "src/javascript/jest:WatchPlugin"
    },
    "projen.javascript.YarnBerryOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Configure Yarn Berry."
      },
      "fqn": "projen.javascript.YarnBerryOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/node-package.ts",
        "line": 1727
      },
      "name": "YarnBerryOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- 4.0.1",
            "stability": "experimental",
            "summary": "A fully specified version to use for yarn (e.g., x.x.x)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 1733
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- a blank Yarn RC file",
            "stability": "experimental",
            "summary": "The yarnrc configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 1740
          },
          "name": "yarnRcOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnrcOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Learn more at: https://yarnpkg.com/features/caching#zero-installs",
            "stability": "experimental",
            "summary": "Should zero-installs be enabled?"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/node-package.ts",
            "line": 1748
          },
          "name": "zeroInstalls",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/node-package:YarnBerryOptions"
    },
    "projen.javascript.YarnCacheMigrationMode": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#cacheMigrationMode."
      },
      "fqn": "projen.javascript.YarnCacheMigrationMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 137
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "REQUIRED_ONLY"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "MATCH_SPEC"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ALWAYS"
        }
      ],
      "name": "YarnCacheMigrationMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnCacheMigrationMode"
    },
    "projen.javascript.YarnChecksumBehavior": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#checksumBehavior."
      },
      "fqn": "projen.javascript.YarnChecksumBehavior",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 7
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "THROW"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "UPDATE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "RESET"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "IGNORE"
        }
      ],
      "name": "YarnChecksumBehavior",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnChecksumBehavior"
    },
    "projen.javascript.YarnDefaultSemverRangePrefix": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#defaultSemverRangePrefix."
      },
      "fqn": "projen.javascript.YarnDefaultSemverRangePrefix",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 15
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "CARET"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "TILDE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "EMPTY_STRING"
        }
      ],
      "name": "YarnDefaultSemverRangePrefix",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnDefaultSemverRangePrefix"
    },
    "projen.javascript.YarnLogFilter": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#logFilters."
      },
      "fqn": "projen.javascript.YarnLogFilter",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 30
      },
      "name": "YarnLogFilter",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 31
          },
          "name": "code",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 33
          },
          "name": "level",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnLogFilterLevel"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 34
          },
          "name": "pattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 32
          },
          "name": "text",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnLogFilter"
    },
    "projen.javascript.YarnLogFilterLevel": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://v3.yarnpkg.com/configuration/yarnrc#logFilters.0.level."
      },
      "fqn": "projen.javascript.YarnLogFilterLevel",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 22
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "INFO"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "WARNING"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ERROR"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DISCARD"
        }
      ],
      "name": "YarnLogFilterLevel",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnLogFilterLevel"
    },
    "projen.javascript.YarnNetworkSetting": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#networkSettings."
      },
      "fqn": "projen.javascript.YarnNetworkSetting",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 38
      },
      "name": "YarnNetworkSetting",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "deprecated": "- use httpsCaFilePath in Yarn v4 and newer",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 40
          },
          "name": "caFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 42
          },
          "name": "enableNetwork",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 43
          },
          "name": "httpProxy",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 41
          },
          "name": "httpsCaFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 46
          },
          "name": "httpsCertFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 45
          },
          "name": "httpsKeyFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 44
          },
          "name": "httpsProxy",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnNetworkSetting"
    },
    "projen.javascript.YarnNmHoistingLimit": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#nmHoistingLimits."
      },
      "fqn": "projen.javascript.YarnNmHoistingLimit",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 50
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEPENDENCIES"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NONE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "WORKSPACES"
        }
      ],
      "name": "YarnNmHoistingLimit",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnNmHoistingLimit"
    },
    "projen.javascript.YarnNmMode": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#nmMode."
      },
      "fqn": "projen.javascript.YarnNmMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 57
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "CLASSIC"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "HARDLINKS_LOCAL"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "HARDLINKS_GLOBAL"
        }
      ],
      "name": "YarnNmMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnNmMode"
    },
    "projen.javascript.YarnNodeLinker": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#nodeLinker."
      },
      "fqn": "projen.javascript.YarnNodeLinker",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 64
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PNP"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PNPM"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NODE_MODULES"
        }
      ],
      "name": "YarnNodeLinker",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnNodeLinker"
    },
    "projen.javascript.YarnNpmPublishAccess": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#npmPublishAccess."
      },
      "fqn": "projen.javascript.YarnNpmPublishAccess",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 71
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PUBLIC"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "RESTRICTED"
        }
      ],
      "name": "YarnNpmPublishAccess",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnNpmPublishAccess"
    },
    "projen.javascript.YarnNpmRegistry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#npmRegistries."
      },
      "fqn": "projen.javascript.YarnNpmRegistry",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 77
      },
      "name": "YarnNpmRegistry",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 78
          },
          "name": "npmAlwaysAuth",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 79
          },
          "name": "npmAuthIdent",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 80
          },
          "name": "npmAuthToken",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnNpmRegistry"
    },
    "projen.javascript.YarnNpmScope": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#npmScopes."
      },
      "fqn": "projen.javascript.YarnNpmScope",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 84
      },
      "name": "YarnNpmScope",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 87
          },
          "name": "npmAlwaysAuth",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 88
          },
          "name": "npmAuthIdent",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 89
          },
          "name": "npmAuthToken",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 85
          },
          "name": "npmPublishRegistry",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 86
          },
          "name": "npmRegistryServer",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnNpmScope"
    },
    "projen.javascript.YarnPackageExtension": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#packageExtensions."
      },
      "fqn": "projen.javascript.YarnPackageExtension",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 98
      },
      "name": "YarnPackageExtension",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 99
          },
          "name": "dependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 100
          },
          "name": "peerDependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 101
          },
          "name": "peerDependenciesMeta",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.javascript.YarnPeerDependencyMeta"
                  },
                  "kind": "map"
                }
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnPackageExtension"
    },
    "projen.javascript.YarnPeerDependencyMeta": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#packageExtensions."
      },
      "fqn": "projen.javascript.YarnPeerDependencyMeta",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 93
      },
      "name": "YarnPeerDependencyMeta",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 94
          },
          "name": "optional",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnPeerDependencyMeta"
    },
    "projen.javascript.YarnPnpFallbackMode": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#pnpFallbackMode."
      },
      "fqn": "projen.javascript.YarnPnpFallbackMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 108
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NONE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEPENDENCIES_ONLY"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ALL"
        }
      ],
      "name": "YarnPnpFallbackMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnPnpFallbackMode"
    },
    "projen.javascript.YarnPnpMode": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#pnpMode."
      },
      "fqn": "projen.javascript.YarnPnpMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 115
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "STRICT"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "LOOSE"
        }
      ],
      "name": "YarnPnpMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnPnpMode"
    },
    "projen.javascript.YarnProgressBarStyle": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#progressBarStyle."
      },
      "fqn": "projen.javascript.YarnProgressBarStyle",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 121
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "PATRICK"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "SIMBA"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "JACK"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "HOGSFATHER"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "DEFAULT"
        }
      ],
      "name": "YarnProgressBarStyle",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnProgressBarStyle"
    },
    "projen.javascript.YarnSupportedArchitectures": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#supportedArchitectures."
      },
      "fqn": "projen.javascript.YarnSupportedArchitectures",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 130
      },
      "name": "YarnSupportedArchitectures",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 132
          },
          "name": "cpu",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 133
          },
          "name": "libc",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 131
          },
          "name": "os",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnSupportedArchitectures"
    },
    "projen.javascript.YarnWinLinkType": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "https://yarnpkg.com/configuration/yarnrc#winLinkType."
      },
      "fqn": "projen.javascript.YarnWinLinkType",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 144
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "JUNCTIONS"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "SYMLINKS"
        }
      ],
      "name": "YarnWinLinkType",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnWinLinkType"
    },
    "projen.javascript.YarnWorkerPoolMode": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.YarnWorkerPoolMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 149
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "ASYNC"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "WORKERS"
        }
      ],
      "name": "YarnWorkerPoolMode",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:YarnWorkerPoolMode"
    },
    "projen.javascript.Yarnrc": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.javascript.Yarnrc",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/javascript/yarnrc.ts",
          "line": 359
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "version",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.javascript.YarnrcOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 358
      },
      "name": "Yarnrc",
      "namespace": "javascript",
      "symbolId": "src/javascript/yarnrc:Yarnrc"
    },
    "projen.javascript.YarnrcOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Configuration for .yarnrc.yml in Yarn Berry v4."
      },
      "fqn": "projen.javascript.YarnrcOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/javascript/yarnrc.ts",
        "line": 155
      },
      "name": "YarnrcOptions",
      "namespace": "javascript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#cacheFolder."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 157
          },
          "name": "cacheFolder",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#cacheMigrationMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 159
          },
          "name": "cacheMigrationMode",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnCacheMigrationMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#changesetBaseRefs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 163
          },
          "name": "changesetBaseRefs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#changesetIgnorePatterns."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 165
          },
          "name": "changesetIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#checksumBehavior."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 167
          },
          "name": "checksumBehavior",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnChecksumBehavior"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#cloneConcurrency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 169
          },
          "name": "cloneConcurrency",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#compressionLevel."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 171
          },
          "name": "compressionLevel",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "string"
                },
                {
                  "primitive": "number"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#constraintsPath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 173
          },
          "name": "constraintsPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#defaultLanguageName."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 175
          },
          "name": "defaultLanguageName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#defaultProtocol."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 177
          },
          "name": "defaultProtocol",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#defaultSemverRangePrefix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 179
          },
          "name": "defaultSemverRangePrefix",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnDefaultSemverRangePrefix"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#deferredVersionFolder."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 181
          },
          "name": "deferredVersionFolder",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableColors."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 183
          },
          "name": "enableColors",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableConstraintsCheck."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 185
          },
          "name": "enableConstraintsCheck",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableGlobalCache."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 187
          },
          "name": "enableGlobalCache",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableHardenedMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 189
          },
          "name": "enableHardenedMode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableHyperlinks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 191
          },
          "name": "enableHyperlinks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableImmutableCache."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 193
          },
          "name": "enableImmutableCache",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableImmutableInstalls."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 195
          },
          "name": "enableImmutableInstalls",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableInlineBuilds."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 197
          },
          "name": "enableInlineBuilds",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableInlineHunks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 199
          },
          "name": "enableInlineHunks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableMessageNames."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 201
          },
          "name": "enableMessageNames",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableMirror."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 203
          },
          "name": "enableMirror",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableNetwork."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 205
          },
          "name": "enableNetwork",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableOfflineMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 207
          },
          "name": "enableOfflineMode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableProgressBars."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 209
          },
          "name": "enableProgressBars",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableScripts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 211
          },
          "name": "enableScripts",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableStrictSsl."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 213
          },
          "name": "enableStrictSsl",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableTelemetry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 215
          },
          "name": "enableTelemetry",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableTimers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 217
          },
          "name": "enableTimers",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#enableTransparentWorkspaces."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 219
          },
          "name": "enableTransparentWorkspaces",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#globalFolder."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 221
          },
          "name": "globalFolder",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpProxy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 223
          },
          "name": "httpProxy",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpRetry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 225
          },
          "name": "httpRetry",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpsCaFilePath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 161
          },
          "name": "httpsCaFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpsCertFilePath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 229
          },
          "name": "httpsCertFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpsKeyFilePath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 231
          },
          "name": "httpsKeyFilePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpsProxy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 233
          },
          "name": "httpsProxy",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#httpTimeout."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 227
          },
          "name": "httpTimeout",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "- removed in Yarn v4 and newer",
            "stability": "deprecated",
            "summary": "https://v3.yarnpkg.com/configuration/yarnrc#ignoreCwd."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 239
          },
          "name": "ignoreCwd",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#ignorePath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 241
          },
          "name": "ignorePath",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#immutablePatterns."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 243
          },
          "name": "immutablePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#initFields."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 247
          },
          "name": "initFields",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#initScope."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 245
          },
          "name": "initScope",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#injectEnvironmentFiles."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 249
          },
          "name": "injectEnvironmentFiles",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#installStatePath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 251
          },
          "name": "installStatePath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "- removed in Yarn v4 and newer",
            "stability": "deprecated",
            "summary": "https://v3.yarnpkg.com/configuration/yarnrc#lockfileFilename."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 259
          },
          "name": "lockfileFilename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#logFilters."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 253
          },
          "name": "logFilters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.YarnLogFilter"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#networkConcurrency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 261
          },
          "name": "networkConcurrency",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#networkSettings."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 263
          },
          "name": "networkSettings",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.YarnNetworkSetting"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#nmHoistingLimits."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 265
          },
          "name": "nmHoistingLimits",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnNmHoistingLimit"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#nmMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 269
          },
          "name": "nmMode",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnNmMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#nmSelfReferences."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 267
          },
          "name": "nmSelfReferences",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#nodeLinker."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 271
          },
          "name": "nodeLinker",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnNodeLinker"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmAlwaysAuth."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 275
          },
          "name": "npmAlwaysAuth",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmAuditExcludePackages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 285
          },
          "name": "npmAuditExcludePackages",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmAuditIgnoreAdvisories."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 287
          },
          "name": "npmAuditIgnoreAdvisories",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmAuditRegistry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 277
          },
          "name": "npmAuditRegistry",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmAuthIdent."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 279
          },
          "name": "npmAuthIdent",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmAuthToken."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 281
          },
          "name": "npmAuthToken",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmPublishAccess."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 283
          },
          "name": "npmPublishAccess",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnNpmPublishAccess"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmPublishRegistry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 289
          },
          "name": "npmPublishRegistry",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmRegistries."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 291
          },
          "name": "npmRegistries",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.YarnNpmRegistry"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmRegistryServer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 293
          },
          "name": "npmRegistryServer",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#npmScopes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 295
          },
          "name": "npmScopes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.YarnNpmScope"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#packageExtensions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 297
          },
          "name": "packageExtensions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.javascript.YarnPackageExtension"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#patchFolder."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 299
          },
          "name": "patchFolder",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "- removed in Yarn v4 and newer",
            "stability": "deprecated",
            "summary": "https://v3.yarnpkg.com/configuration/yarnrc#pnpDataPath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 305
          },
          "name": "pnpDataPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpEnableEsmLoader."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 307
          },
          "name": "pnpEnableEsmLoader",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpEnableInlining."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 309
          },
          "name": "pnpEnableInlining",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpFallbackMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 311
          },
          "name": "pnpFallbackMode",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnPnpFallbackMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpIgnorePatterns."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 313
          },
          "name": "pnpIgnorePatterns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 315
          },
          "name": "pnpMode",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnPnpMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpShebang."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 317
          },
          "name": "pnpShebang",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#pnpUnpluggedFolder."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 319
          },
          "name": "pnpUnpluggedFolder",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "- removed in Yarn v4 and newer",
            "stability": "deprecated",
            "summary": "https://v3.yarnpkg.com/configuration/yarnrc#preferAggregateCacheInfo."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 325
          },
          "name": "preferAggregateCacheInfo",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#preferDeferredVersions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 327
          },
          "name": "preferDeferredVersions",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#preferInteractive."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 329
          },
          "name": "preferInteractive",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#preferReuse."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 331
          },
          "name": "preferReuse",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#preferTruncatedLines."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 333
          },
          "name": "preferTruncatedLines",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#progressBarStyle."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 335
          },
          "name": "progressBarStyle",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnProgressBarStyle"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#rcFilename."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 337
          },
          "name": "rcFilename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#supportedArchitectures."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 339
          },
          "name": "supportedArchitectures",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnSupportedArchitectures"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#taskPoolConcurrency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 341
          },
          "name": "taskPoolConcurrency",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#telemetryInterval."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 345
          },
          "name": "telemetryInterval",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#telemetryUserId."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 347
          },
          "name": "telemetryUserId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#tsEnableAutoTypes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 349
          },
          "name": "tsEnableAutoTypes",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#unsafeHttpWhitelist."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 351
          },
          "name": "unsafeHttpWhitelist",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#virtualFolder."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 353
          },
          "name": "virtualFolder",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#winLinkType."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 273
          },
          "name": "winLinkType",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnWinLinkType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#workerPoolMode."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 343
          },
          "name": "workerPoolMode",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.YarnWorkerPoolMode"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "https://yarnpkg.com/configuration/yarnrc#yarnPath."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/javascript/yarnrc.ts",
            "line": 355
          },
          "name": "yarnPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/javascript/yarnrc:YarnrcOptions"
    },
    "projen.python.IPackageProvider": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.IPackageProvider",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-deps.ts",
        "line": 30
      },
      "name": "IPackageProvider",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "An array of packages (may be dynamically generated)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-deps.ts",
            "line": 34
          },
          "name": "packages",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.Dependency"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/python/python-deps:IPackageProvider"
    },
    "projen.python.IPythonDeps": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.IPythonDeps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-deps.ts",
        "line": 4
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds a runtime dependency."
          },
          "locationInModule": {
            "filename": "src/python/python-deps.ts",
            "line": 15
          },
          "name": "addDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds a dev dependency."
          },
          "locationInModule": {
            "filename": "src/python/python-deps.ts",
            "line": 22
          },
          "name": "addDevDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Installs dependencies (called during post-synthesis)."
          },
          "locationInModule": {
            "filename": "src/python/python-deps.ts",
            "line": 27
          },
          "name": "installDependencies"
        }
      ],
      "name": "IPythonDeps",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A task that installs and updates dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-deps.ts",
            "line": 8
          },
          "name": "installCiTask",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/python/python-deps:IPythonDeps"
    },
    "projen.python.IPythonEnv": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.IPythonEnv",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-env.ts",
        "line": 1
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Initializes the virtual environment if it doesn't exist (called during post-synthesis)."
          },
          "locationInModule": {
            "filename": "src/python/python-env.ts",
            "line": 5
          },
          "name": "setupEnvironment"
        }
      ],
      "name": "IPythonEnv",
      "namespace": "python",
      "symbolId": "src/python/python-env:IPythonEnv"
    },
    "projen.python.IPythonPackaging": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.IPythonPackaging",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-packaging.ts",
        "line": 4
      },
      "name": "IPythonPackaging",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A task that uploads the package to a package repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 8
          },
          "name": "publishTask",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/python/python-packaging:IPythonPackaging"
    },
    "projen.python.Pip": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Manages dependencies using a requirements.txt file and the pip CLI tool."
      },
      "fqn": "projen.python.Pip",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/pip.ts",
          "line": 20
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "_options",
            "optional": true,
            "type": {
              "fqn": "projen.python.PipOptions"
            }
          }
        ]
      },
      "interfaces": [
        "projen.python.IPythonDeps"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/pip.ts",
        "line": 17
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a runtime dependency."
          },
          "locationInModule": {
            "filename": "src/python/pip.ts",
            "line": 43
          },
          "name": "addDependency",
          "overrides": "projen.python.IPythonDeps",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a dev dependency."
          },
          "locationInModule": {
            "filename": "src/python/pip.ts",
            "line": 52
          },
          "name": "addDevDependency",
          "overrides": "projen.python.IPythonDeps",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Installs dependencies (called during post-synthesis)."
          },
          "locationInModule": {
            "filename": "src/python/pip.ts",
            "line": 59
          },
          "name": "installDependencies",
          "overrides": "projen.python.IPythonDeps"
        }
      ],
      "name": "Pip",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "A task that installs and updates dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pip.ts",
            "line": 18
          },
          "name": "installCiTask",
          "overrides": "projen.python.IPythonDeps",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/python/pip:Pip"
    },
    "projen.python.PipOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for pip."
      },
      "fqn": "projen.python.PipOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/pip.ts",
        "line": 12
      },
      "name": "PipOptions",
      "namespace": "python",
      "symbolId": "src/python/pip:PipOptions"
    },
    "projen.python.Poetry": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Manage project dependencies, virtual environments, and packaging through the poetry CLI tool."
      },
      "fqn": "projen.python.Poetry",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/poetry.ts",
          "line": 57
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.PoetryOptions"
            }
          }
        ]
      },
      "interfaces": [
        "projen.python.IPythonDeps",
        "projen.python.IPythonEnv",
        "projen.python.IPythonPackaging"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/poetry.ts",
        "line": 22
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a runtime dependency."
          },
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 199
          },
          "name": "addDependency",
          "overrides": "projen.python.IPythonDeps",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a dev dependency."
          },
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 208
          },
          "name": "addDevDependency",
          "overrides": "projen.python.IPythonDeps",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Installs dependencies (called during post-synthesis)."
          },
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 243
          },
          "name": "installDependencies",
          "overrides": "projen.python.IPythonDeps"
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Initializes the virtual environment if it doesn't exist (called during post-synthesis)."
          },
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 215
          },
          "name": "setupEnvironment",
          "overrides": "projen.python.IPythonEnv"
        }
      ],
      "name": "Poetry",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Task for installing dependencies according to the existing lockfile."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 34
          },
          "name": "installCiTask",
          "overrides": "projen.python.IPythonDeps",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Task for updating the lockfile and installing project dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 29
          },
          "name": "installTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Task for publishing the package to a package repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 39
          },
          "name": "publishTask",
          "overrides": "projen.python.IPythonPackaging",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Task for publishing the package to the Test PyPI repository for testing purposes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 44
          },
          "name": "publishTestTask",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/python/poetry:Poetry"
    },
    "projen.python.PoetryOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.PoetryOptions",
      "interfaces": [
        "projen.python.PythonPackagingOptions",
        "projen.python.PythonExecutableOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/poetry.ts",
        "line": 14
      },
      "name": "PoetryOptions",
      "namespace": "python",
      "symbolId": "src/python/poetry:PoetryOptions"
    },
    "projen.python.PoetryPyproject": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "see": "https://python-poetry.org/docs/pyproject/",
        "stability": "experimental",
        "summary": "Represents configuration of a pyproject.toml file for a Poetry project."
      },
      "fqn": "projen.python.PoetryPyproject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/poetry.ts",
          "line": 409
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.PoetryPyprojectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/poetry.ts",
        "line": 406
      },
      "name": "PoetryPyproject",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 407
          },
          "name": "file",
          "type": {
            "fqn": "projen.TomlFile"
          }
        }
      ],
      "symbolId": "src/python/poetry:PoetryPyproject"
    },
    "projen.python.PoetryPyprojectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://python-poetry.org/docs/pyproject/",
        "stability": "experimental",
        "summary": "Poetry-specific options."
      },
      "fqn": "projen.python.PoetryPyprojectOptions",
      "interfaces": [
        "projen.python.PoetryPyprojectOptionsWithoutDeps"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/poetry.ts",
        "line": 382
      },
      "name": "PoetryPyprojectOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "{ requests: \"^2.13.0\" }",
            "remarks": "The python version for which your package is compatible is also required.",
            "stability": "experimental",
            "summary": "A list of dependencies for the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 391
          },
          "name": "dependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "{ requests: \"^2.13.0\" }",
            "stability": "experimental",
            "summary": "A list of development dependencies for the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 398
          },
          "name": "devDependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/python/poetry:PoetryPyprojectOptions"
    },
    "projen.python.PoetryPyprojectOptionsWithoutDeps": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://python-poetry.org/docs/pyproject/",
        "stability": "experimental",
        "summary": "Poetry-specific options."
      },
      "fqn": "projen.python.PoetryPyprojectOptionsWithoutDeps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/poetry.ts",
        "line": 259
      },
      "name": "PoetryPyprojectOptionsWithoutDeps",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be in the form \"name <email>\"",
            "stability": "experimental",
            "summary": "The authors of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 286
          },
          "name": "authors",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://pypi.org/classifiers/",
            "stability": "experimental",
            "summary": "A list of PyPI trove classifiers that describe the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 323
          },
          "name": "classifiers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A short description of the package (required)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 273
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A URL to the documentation of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 311
          },
          "name": "documentation",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If a VCS is being used for a package, the exclude field will be seeded with\nthe VCS’ ignore settings (.gitignore for git for example).",
            "stability": "experimental",
            "summary": "A list of patterns that will be excluded in the final package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 341
          },
          "name": "exclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Package extras."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 356
          },
          "name": "extras",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A URL to the website of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 301
          },
          "name": "homepage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of patterns that will be included in the final package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 333
          },
          "name": "include",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of keywords (max: 5) that the package is related to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 316
          },
          "name": "keywords",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "If the project is proprietary and does not use a specific license, you\ncan set this value as \"Proprietary\".",
            "stability": "experimental",
            "summary": "License of this package as an SPDX identifier."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 281
          },
          "name": "license",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be in the form \"name <email>\"",
            "stability": "experimental",
            "summary": "the maintainers of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 291
          },
          "name": "maintainers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Name of the package (required)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 263
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "example": "false",
            "see": "https://python-poetry.org/docs/pyproject/#package-mode",
            "stability": "experimental",
            "summary": "Package mode (optional)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 375
          },
          "name": "packageMode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A list of packages and modules to include in the final distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 328
          },
          "name": "packages",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be specified as a table.",
            "see": "https://toml.io/en/v1.0.0#table",
            "stability": "experimental",
            "summary": "Plugins."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 362
          },
          "name": "plugins",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The name of the readme file of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 296
          },
          "name": "readme",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A URL to the repository of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 306
          },
          "name": "repository",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The scripts or executables that will be installed when installing the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 346
          },
          "name": "scripts",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Source registries from which packages are retrieved."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 351
          },
          "name": "source",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "E.g. \"Bug Tracker\"",
            "stability": "experimental",
            "summary": "Project custom URLs, in addition to homepage, repository and documentation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 368
          },
          "name": "urls",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Version of the package (required)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/poetry.ts",
            "line": 268
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/poetry:PoetryPyprojectOptionsWithoutDeps"
    },
    "projen.python.Projenrc": {
      "assembly": "projen",
      "base": "projen.ProjenrcFile",
      "docs": {
        "remarks": "This will install `projen` as a Python dependency and will add a\n`synth` task which will run `.projenrc.py`.",
        "stability": "experimental",
        "summary": "Allows writing projenrc files in python."
      },
      "fqn": "projen.python.Projenrc",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/projenrc.ts",
          "line": 50
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.python.ProjenrcOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/projenrc.ts",
        "line": 39
      },
      "name": "Projenrc",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/projenrc.ts",
            "line": 43
          },
          "name": "filePath",
          "overrides": "projen.ProjenrcFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Path to the python executable to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/projenrc.ts",
            "line": 48
          },
          "name": "pythonExec",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/projenrc:Projenrc"
    },
    "projen.python.ProjenrcOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Projenrc`."
      },
      "fqn": "projen.python.ProjenrcOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/projenrc.ts",
        "line": 13
      },
      "name": "ProjenrcOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".projenrc.py\"",
            "stability": "experimental",
            "summary": "The name of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/projenrc.ts",
            "line": 18
          },
          "name": "filename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- current version",
            "stability": "experimental",
            "summary": "The projen version to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/projenrc.ts",
            "line": 24
          },
          "name": "projenVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"python\"",
            "stability": "experimental",
            "summary": "Path to the python executable to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/projenrc.ts",
            "line": 30
          },
          "name": "pythonExec",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/projenrc:ProjenrcOptions"
    },
    "projen.python.Pytest": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.Pytest",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/pytest.ts",
          "line": 48
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.python.PytestOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/pytest.ts",
        "line": 41
      },
      "name": "Pytest",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "deprecated": "Use `sampleTestdir` on the project instead.",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest.ts",
            "line": 45
          },
          "name": "testdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest.ts",
            "line": 46
          },
          "name": "testMatch",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/python/pytest:Pytest"
    },
    "projen.python.PytestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.PytestOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/pytest.ts",
        "line": 5
      },
      "name": "PytestOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Stop the testing process after the first N failures."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest.ts",
            "line": 25
          },
          "name": "maxFailures",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tests\"",
            "deprecated": "Reference `sampleTestdir` on the project instead; to change the directory where tests are discovered from, use `testMatch`.",
            "remarks": "Typically the same directory where project tests will be located.",
            "stability": "deprecated",
            "summary": "Location of sample tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest.ts",
            "line": 20
          },
          "name": "testdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "example": "[\"tests/unit\", \"tests/qa\"]",
            "remarks": "Useful when all project tests are in a known location to speed up\ntest collection and to avoid picking up undesired tests by accident.\n\nLeave empty to discover all test_*.py or *_test.py files, per Pytest default.\n\nThe array will be concatenated and passed as a single argument to pytest.",
            "stability": "experimental",
            "summary": "List of paths to test files or directories."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest.ts",
            "line": 38
          },
          "name": "testMatch",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"7.4.3\"",
            "stability": "experimental",
            "summary": "Pytest version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest.ts",
            "line": 11
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/pytest:PytestOptions"
    },
    "projen.python.PytestSample": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Python test code sample."
      },
      "fqn": "projen.python.PytestSample",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/pytest-sample.ts",
          "line": 23
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.PytestSampleOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/pytest-sample.ts",
        "line": 22
      },
      "name": "PytestSample",
      "namespace": "python",
      "symbolId": "src/python/pytest-sample:PytestSample"
    },
    "projen.python.PytestSampleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for python test code sample."
      },
      "fqn": "projen.python.PytestSampleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/pytest-sample.ts",
        "line": 7
      },
      "name": "PytestSampleOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Name of the python package as used in imports and filenames."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest-sample.ts",
            "line": 11
          },
          "name": "moduleName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Test directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/pytest-sample.ts",
            "line": 16
          },
          "name": "testdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/pytest-sample:PytestSampleOptions"
    },
    "projen.python.PythonExecutableOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.PythonExecutableOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-project.ts",
        "line": 27
      },
      "name": "PythonExecutableOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"python\"",
            "stability": "experimental",
            "summary": "Path to the python executable to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 32
          },
          "name": "pythonExec",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/python-project:PythonExecutableOptions"
    },
    "projen.python.PythonPackagingOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.PythonPackagingOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-packaging.ts",
        "line": 11
      },
      "name": "PythonPackagingOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "$GIT_USER_EMAIL",
            "stability": "experimental",
            "summary": "Author's e-mail."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 29
          },
          "name": "authorEmail",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "$GIT_USER_NAME",
            "stability": "experimental",
            "summary": "Author's name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 17
          },
          "name": "authorName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "\"0.1.0\"",
            "stability": "experimental",
            "summary": "Version of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 37
          },
          "name": "version",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://pypi.org/classifiers/",
            "stability": "experimental",
            "summary": "A list of PyPI trove classifiers that describe the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 60
          },
          "name": "classifiers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "stability": "experimental",
            "summary": "A short description of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 43
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A URL to the website of the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 53
          },
          "name": "homepage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "License of this package as an SPDX identifier."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 48
          },
          "name": "license",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Package name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 22
          },
          "name": "packageName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional options to set for poetry if using poetry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 70
          },
          "name": "poetryOptions",
          "optional": true,
          "type": {
            "fqn": "projen.python.PoetryPyprojectOptionsWithoutDeps"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional fields to pass in the setup() function if using setuptools."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-packaging.ts",
            "line": 65
          },
          "name": "setupConfig",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/python/python-packaging:PythonPackagingOptions"
    },
    "projen.python.PythonProject": {
      "assembly": "projen",
      "base": "projen.github.GitHubProject",
      "docs": {
        "custom": {
          "pjid": "python"
        },
        "stability": "experimental",
        "summary": "Python project."
      },
      "fqn": "projen.python.PythonProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/python-project.ts",
          "line": 243
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.PythonProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/python-project.ts",
        "line": 205
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a runtime dependency."
          },
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 547
          },
          "name": "addDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a dev dependency."
          },
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 556
          },
          "name": "addDevDependency",
          "parameters": [
            {
              "docs": {
                "summary": "Format `<module>@<semver>`."
              },
              "name": "spec",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Order is *not* guaranteed.",
            "stability": "experimental",
            "summary": "Called after all components are synthesized."
          },
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 560
          },
          "name": "postSynthesize",
          "overrides": "projen.Project"
        }
      ],
      "name": "PythonProject",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "API for managing dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 220
          },
          "name": "depsManager",
          "type": {
            "fqn": "projen.python.IPythonDeps"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "API for mangaging the Python runtime environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 225
          },
          "name": "envManager",
          "type": {
            "fqn": "projen.python.IPythonEnv"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Python module name (the project name, with any hyphens or periods replaced with underscores)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 210
          },
          "name": "moduleName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "\"tests\"",
            "stability": "experimental",
            "summary": "Directory where sample tests are located."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 241
          },
          "name": "sampleTestdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Version of the package for distribution (should follow semver)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 215
          },
          "name": "version",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Only applies when the `projectType` is LIB.",
            "stability": "experimental",
            "summary": "API for managing packaging the project as a library."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 230
          },
          "name": "packagingManager",
          "optional": true,
          "type": {
            "fqn": "projen.python.IPythonPackaging"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Pytest component."
          },
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 235
          },
          "name": "pytest",
          "optional": true,
          "type": {
            "fqn": "projen.python.Pytest"
          }
        }
      ],
      "symbolId": "src/python/python-project:PythonProject"
    },
    "projen.python.PythonProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `PythonProject`."
      },
      "fqn": "projen.python.PythonProjectOptions",
      "interfaces": [
        "projen.github.GitHubProjectOptions",
        "projen.python.PythonPackagingOptions",
        "projen.python.PythonExecutableOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-project.ts",
        "line": 38
      },
      "name": "PythonProjectOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "$PYTHON_MODULE_NAME",
            "remarks": "Must only consist of alphanumeric characters and underscores.",
            "stability": "experimental",
            "summary": "Name of the python package as used in imports and filenames."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 51
          },
          "name": "moduleName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "[]",
            "remarks": "Dependencies use the format: `<module>@<semver>`\n\nAdditional dependencies can be added via `project.addDependency()`.",
            "stability": "experimental",
            "summary": "List of runtime dependencies for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 65
          },
          "name": "deps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "[]",
            "remarks": "Dependencies use the format: `<module>@<semver>`\n\nAdditional dependencies can be added via `project.addDevDependency()`.",
            "stability": "experimental",
            "summary": "List of dev dependencies for this project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 77
          },
          "name": "devDeps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "- true, unless poetry is true, then false",
            "stability": "experimental",
            "summary": "Use pip with a requirements.txt file to track project dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 87
          },
          "name": "pip",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "false",
            "remarks": "This feature is incompatible with pip, setuptools, or venv.\nIf you set this option to `true`, then pip, setuptools, and venv must be set to `false`.",
            "stability": "experimental",
            "summary": "Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 121
          },
          "name": "poetry",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "This will install `projen` as a JavaScript dependency and add a `synth`\ntask which will run `.projenrc.js`.",
            "stability": "experimental",
            "summary": "Use projenrc in javascript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 175
          },
          "name": "projenrcJs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options related to projenrc in JavaScript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 181
          },
          "name": "projenrcJsOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.ProjenrcOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This will install `projen` as a Python dependency and add a `synth`\ntask which will run `.projenrc.py`.",
            "stability": "experimental",
            "summary": "Use projenrc in Python."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 159
          },
          "name": "projenrcPython",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options related to projenrc in python."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 165
          },
          "name": "projenrcPythonOptions",
          "optional": true,
          "type": {
            "fqn": "projen.python.ProjenrcOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "This will create a tsconfig file (default: `tsconfig.projen.json`)\nand use `ts-node` in the default task to parse the project source files.",
            "stability": "experimental",
            "summary": "Use projenrc in TypeScript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 191
          },
          "name": "projenrcTs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Options related to projenrc in TypeScript."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 197
          },
          "name": "projenrcTsOptions",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.ProjenrcTsOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "true",
            "stability": "experimental",
            "summary": "Include pytest tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 130
          },
          "name": "pytest",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "stability": "experimental",
            "summary": "pytest options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 136
          },
          "name": "pytestOptions",
          "optional": true,
          "type": {
            "fqn": "projen.python.PytestOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Include sample code and test if the relevant directories don't exist."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 142
          },
          "name": "sample",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tests\"",
            "remarks": "Typically the same directory where project tests will be located.",
            "stability": "experimental",
            "summary": "Location of sample tests."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 149
          },
          "name": "sampleTestdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "- true, unless poetry is true, then false",
            "stability": "experimental",
            "summary": "Use setuptools with a setup.py script for packaging and publishing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 109
          },
          "name": "setuptools",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "- true, unless poetry is true, then false",
            "stability": "experimental",
            "summary": "Use venv to manage a virtual environment for installing dependencies inside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 95
          },
          "name": "venv",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- defaults",
            "stability": "experimental",
            "summary": "Venv options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-project.ts",
            "line": 101
          },
          "name": "venvOptions",
          "optional": true,
          "type": {
            "fqn": "projen.python.VenvOptions"
          }
        }
      ],
      "symbolId": "src/python/python-project:PythonProjectOptions"
    },
    "projen.python.PythonSample": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Python code sample."
      },
      "fqn": "projen.python.PythonSample",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/python-sample.ts",
          "line": 19
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.PythonSampleOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/python-sample.ts",
        "line": 18
      },
      "name": "PythonSample",
      "namespace": "python",
      "symbolId": "src/python/python-sample:PythonSample"
    },
    "projen.python.PythonSampleOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for python sample code."
      },
      "fqn": "projen.python.PythonSampleOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/python-sample.ts",
        "line": 8
      },
      "name": "PythonSampleOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Sample code directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/python-sample.ts",
            "line": 12
          },
          "name": "dir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/python-sample:PythonSampleOptions"
    },
    "projen.python.RequirementsFile": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "see": "https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format",
        "stability": "experimental",
        "summary": "Specifies a list of packages to be installed using pip."
      },
      "fqn": "projen.python.RequirementsFile",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/requirements-file.ts",
          "line": 23
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.RequirementsFileOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/requirements-file.ts",
        "line": 19
      },
      "methods": [
        {
          "docs": {
            "remarks": "Comment lines (start with `#`) are ignored.",
            "stability": "experimental",
            "summary": "Adds the specified packages provided in semver format."
          },
          "locationInModule": {
            "filename": "src/python/requirements-file.ts",
            "line": 40
          },
          "name": "addPackages",
          "parameters": [
            {
              "docs": {
                "summary": "Package version in format `<module>@<semver>`."
              },
              "name": "packages",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/python/requirements-file.ts",
            "line": 63
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "RequirementsFile",
      "namespace": "python",
      "symbolId": "src/python/requirements-file:RequirementsFile"
    },
    "projen.python.RequirementsFileOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.RequirementsFileOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/requirements-file.ts",
        "line": 7
      },
      "name": "RequirementsFileOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Provide a list of packages that can be dynamically updated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/requirements-file.ts",
            "line": 11
          },
          "name": "packageProvider",
          "optional": true,
          "type": {
            "fqn": "projen.python.IPackageProvider"
          }
        }
      ],
      "symbolId": "src/python/requirements-file:RequirementsFileOptions"
    },
    "projen.python.SetupPy": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "stability": "experimental",
        "summary": "Python packaging script where package metadata can be placed."
      },
      "fqn": "projen.python.SetupPy",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/setuppy.ts",
          "line": 78
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.SetupPyOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/setuppy.ts",
        "line": 75
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 98
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "resolver",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "SetupPy",
      "namespace": "python",
      "symbolId": "src/python/setuppy:SetupPy"
    },
    "projen.python.SetupPyOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://docs.python.org/3/distutils/setupscript.html",
        "stability": "experimental",
        "summary": "Fields to pass in the setup() function of setup.py."
      },
      "fqn": "projen.python.SetupPyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/setuppy.ts",
        "line": 9
      },
      "name": "SetupPyOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Escape hatch to allow any value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 60
          },
          "name": "additionalOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Author's e-mail."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 28
          },
          "name": "authorEmail",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Author's name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 23
          },
          "name": "authorName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "https://pypi.org/classifiers/",
            "stability": "experimental",
            "summary": "A list of PyPI trove classifiers that describe the project."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 55
          },
          "name": "classifiers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A short project description."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 38
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Package's Homepage / Website."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 48
          },
          "name": "homepage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The project license."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 43
          },
          "name": "license",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Name of the package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 13
          },
          "name": "name",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "List of submodules to be packaged."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 18
          },
          "name": "packages",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Manually specify package version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuppy.ts",
            "line": 33
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/setuppy:SetupPyOptions"
    },
    "projen.python.Setuptools": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Manages packaging through setuptools with a setup.py script."
      },
      "fqn": "projen.python.Setuptools",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/setuptools.ts",
          "line": 26
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.python.SetuptoolsOptions"
            }
          }
        ]
      },
      "interfaces": [
        "projen.python.IPythonPackaging"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/setuptools.ts",
        "line": 16
      },
      "name": "Setuptools",
      "namespace": "python",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "A task that uploads the package to a package repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuptools.ts",
            "line": 17
          },
          "name": "publishTask",
          "overrides": "projen.python.IPythonPackaging",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "A task that uploads the package to the Test PyPI repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/setuptools.ts",
            "line": 22
          },
          "name": "publishTestTask",
          "type": {
            "fqn": "projen.Task"
          }
        }
      ],
      "symbolId": "src/python/setuptools:Setuptools"
    },
    "projen.python.SetuptoolsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.python.SetuptoolsOptions",
      "interfaces": [
        "projen.python.PythonPackagingOptions",
        "projen.python.PythonExecutableOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/setuptools.ts",
        "line": 9
      },
      "name": "SetuptoolsOptions",
      "namespace": "python",
      "symbolId": "src/python/setuptools:SetuptoolsOptions"
    },
    "projen.python.Venv": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "Manages a virtual environment through the Python venv module."
      },
      "fqn": "projen.python.Venv",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/python/venv.ts",
          "line": 40
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.python.VenvOptions"
            }
          }
        ]
      },
      "interfaces": [
        "projen.python.IPythonEnv"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/python/venv.ts",
        "line": 29
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Initializes the virtual environment if it doesn't exist (called during post-synthesis)."
          },
          "locationInModule": {
            "filename": "src/python/venv.ts",
            "line": 64
          },
          "name": "setupEnvironment",
          "overrides": "projen.python.IPythonEnv"
        }
      ],
      "name": "Venv",
      "namespace": "python",
      "symbolId": "src/python/venv:Venv"
    },
    "projen.python.VenvOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for venv."
      },
      "fqn": "projen.python.VenvOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/python/venv.ts",
        "line": 11
      },
      "name": "VenvOptions",
      "namespace": "python",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".env\"",
            "stability": "experimental",
            "summary": "Name of directory to store the environment in."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/venv.ts",
            "line": 17
          },
          "name": "envdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"python\"",
            "stability": "experimental",
            "summary": "Path to the python executable to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/python/venv.ts",
            "line": 23
          },
          "name": "pythonExec",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/python/venv:VenvOptions"
    },
    "projen.release.BranchOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for a release branch."
      },
      "fqn": "projen.release.BranchOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/release.ts",
        "line": 794
      },
      "name": "BranchOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The major versions released from this branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 804
          },
          "name": "majorVersion",
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The minimum major version to release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 809
          },
          "name": "minMajorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The minor versions released from this branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 814
          },
          "name": "minorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "stability": "experimental",
            "summary": "The npm distribution tag to use for this branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 842
          },
          "name": "npmDistTag",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- normal releases",
            "stability": "experimental",
            "summary": "Bump the version as a pre-release tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 821
          },
          "name": "prerelease",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no prefix",
            "remarks": "Note: this prefix is used to detect the latest tagged version\nwhen bumping, so if you change this on a project with an existing version\nhistory, you may need to manually tag your latest release\nwith the new prefix.",
            "stability": "experimental",
            "summary": "Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 835
          },
          "name": "tagPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"release-BRANCH\"",
            "stability": "experimental",
            "summary": "The name of the release workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 799
          },
          "name": "workflowName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/release:BranchOptions"
    },
    "projen.release.CodeArtifactAuthProvider": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Options for authorizing requests to a AWS CodeArtifact npm repository."
      },
      "fqn": "projen.release.CodeArtifactAuthProvider",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 959
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Fixed credentials provided via Github secrets."
          },
          "name": "ACCESS_AND_SECRET_KEY_PAIR"
        },
        {
          "docs": {
            "remarks": "See:\nhttps://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html\nhttps://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services",
            "stability": "experimental",
            "summary": "Ephemeral credentials provided via Github's OIDC integration with an IAM role."
          },
          "name": "GITHUB_OIDC"
        }
      ],
      "name": "CodeArtifactAuthProvider",
      "namespace": "release",
      "symbolId": "src/release/publisher:CodeArtifactAuthProvider"
    },
    "projen.release.CodeArtifactOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for publishing packages to AWS CodeArtifact."
      },
      "fqn": "projen.release.CodeArtifactOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 977
      },
      "name": "CodeArtifactOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- When the `authProvider` value is set to\n`CodeArtifactAuthProvider.ACCESS_AND_SECRET_KEY_PAIR`, the default is\n\"AWS_ACCESS_KEY_ID\". For `CodeArtifactAuthProvider.GITHUB_OIDC`, this\nvalue must be left undefined.",
            "remarks": "This property must be specified only when publishing to AWS CodeArtifact (`npmRegistryUrl` contains AWS CodeArtifact URL).",
            "stability": "experimental",
            "summary": "GitHub secret which contains the AWS access key ID to use when publishing packages to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 993
          },
          "name": "accessKeyIdSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "CodeArtifactAuthProvider.ACCESS_AND_SECRET_KEY_PAIR",
            "stability": "experimental",
            "summary": "Provider to use for authorizing requests to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 983
          },
          "name": "authProvider",
          "optional": true,
          "type": {
            "fqn": "projen.release.CodeArtifactAuthProvider"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "remarks": "When using the `CodeArtifactAuthProvider.GITHUB_OIDC` auth provider, this value must be defined.",
            "stability": "experimental",
            "summary": "ARN of AWS role to be assumed prior to get authorization token from AWS CodeArtifact This property must be specified only when publishing to AWS CodeArtifact (`registry` contains AWS CodeArtifact URL)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1013
          },
          "name": "roleToAssume",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- When the `authProvider` value is set to\n`CodeArtifactAuthProvider.ACCESS_AND_SECRET_KEY_PAIR`, the default is\n\"AWS_SECRET_ACCESS_KEY\". For `CodeArtifactAuthProvider.GITHUB_OIDC`, this\nvalue must be left undefined.",
            "remarks": "This property must be specified only when publishing to AWS CodeArtifact (`npmRegistryUrl` contains AWS CodeArtifact URL).",
            "stability": "experimental",
            "summary": "GitHub secret which contains the AWS secret access key to use when publishing packages to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1004
          },
          "name": "secretAccessKeySecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:CodeArtifactOptions"
    },
    "projen.release.CommonPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Common publishing options."
      },
      "fqn": "projen.release.CommonPublishOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 861
      },
      "name": "CommonPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "These can be used\nto add/update the release artifacts ot any other tasks needed.\n\n\nNote that when using this in `publishToGitHubReleases` this will override steps added via `addGitHubPostPublishingSteps`.",
            "stability": "experimental",
            "summary": "Steps to execute after executing the publishing command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 880
          },
          "name": "postPublishSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "These steps are executed after `dist/` has been populated with the build\noutput.\n\nNote that when using this in `publishToGitHubReleases` this will override steps added via `addGitHubPrePublishingSteps`.",
            "stability": "experimental",
            "summary": "Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 871
          },
          "name": "prePublishSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional tools are installed",
            "stability": "experimental",
            "summary": "Additional tools to install in the publishing job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 886
          },
          "name": "publishTools",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.Tools"
          }
        }
      ],
      "symbolId": "src/release/publisher:CommonPublishOptions"
    },
    "projen.release.ContinuousReleaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.release.ContinuousReleaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/release-trigger.ts",
        "line": 37
      },
      "name": "ContinuousReleaseOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Paths for which pushes should trigger a release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 41
          },
          "name": "paths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/release/release-trigger:ContinuousReleaseOptions"
    },
    "projen.release.GitHubReleasesPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Publishing options for GitHub releases."
      },
      "fqn": "projen.release.GitHubReleasesPublishOptions",
      "interfaces": [
        "projen.release.CommonPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1281
      },
      "name": "GitHubReleasesPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "changelog.md",
            "stability": "experimental",
            "summary": "The location of an .md file (relative to `dist/`) that includes the changelog for the release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1244
          },
          "name": "changelogFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "releasetag.txt",
            "stability": "experimental",
            "summary": "The location of a text file (relative to `dist/`) that contains the release tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1237
          },
          "name": "releaseTagFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "version.txt",
            "stability": "experimental",
            "summary": "The location of a text file (relative to `dist/`) that contains the version number."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1230
          },
          "name": "versionFile",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:GitHubReleasesPublishOptions"
    },
    "projen.release.GitPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Publishing options for Git releases."
      },
      "fqn": "projen.release.GitPublishOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1288
      },
      "name": "GitPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "changelog.md",
            "stability": "experimental",
            "summary": "The location of an .md file (relative to `dist/`) that includes the changelog for the release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1244
          },
          "name": "changelogFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "releasetag.txt",
            "stability": "experimental",
            "summary": "The location of a text file (relative to `dist/`) that contains the release tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1237
          },
          "name": "releaseTagFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "version.txt",
            "stability": "experimental",
            "summary": "The location of a text file (relative to `dist/`) that contains the version number."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1230
          },
          "name": "versionFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"main\"",
            "stability": "experimental",
            "summary": "Branch to push to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1299
          },
          "name": "gitBranch",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Set to an empty string to disable pushing.",
            "stability": "experimental",
            "summary": "Override git-push command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1306
          },
          "name": "gitPushCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The location of an .md file that includes the project-level changelog."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1292
          },
          "name": "projectChangelogFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:GitPublishOptions"
    },
    "projen.release.GoPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for Go releases."
      },
      "fqn": "projen.release.GoPublishOptions",
      "interfaces": [
        "projen.release.CommonPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1169
      },
      "name": "GoPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"main\"",
            "stability": "experimental",
            "summary": "Branch to push to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1202
          },
          "name": "gitBranch",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"chore(release): $VERSION\"",
            "stability": "experimental",
            "summary": "The commit message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1221
          },
          "name": "gitCommitMessage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"GO_GITHUB_DEPLOY_KEY\"",
            "remarks": "Ignored if `githubUseSsh` is `false`.",
            "stability": "experimental",
            "summary": "The name of the secret that includes a GitHub deploy key used to push to the GitHub repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1188
          },
          "name": "githubDeployKeySecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"GO_GITHUB_TOKEN\"",
            "remarks": "Ignored if `githubUseSsh` is `true`.",
            "stability": "experimental",
            "summary": "The name of the secret that includes a personal GitHub access token used to push to the GitHub repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1178
          },
          "name": "githubTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Use SSH to push to GitHub instead of a personal accses token."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1195
          },
          "name": "githubUseSsh",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"github-actions@github.com\"",
            "stability": "experimental",
            "summary": "The email to use in the release git commit."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1214
          },
          "name": "gitUserEmail",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"github-actions\"",
            "stability": "experimental",
            "summary": "The user name to use for the release git commit."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1208
          },
          "name": "gitUserName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:GoPublishOptions"
    },
    "projen.release.JsiiReleaseGo": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "Use `GoPublishOptions` instead.",
        "stability": "deprecated"
      },
      "fqn": "projen.release.JsiiReleaseGo",
      "interfaces": [
        "projen.release.GoPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1164
      },
      "name": "JsiiReleaseGo",
      "namespace": "release",
      "symbolId": "src/release/publisher:JsiiReleaseGo"
    },
    "projen.release.JsiiReleaseMaven": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "Use `MavenPublishOptions` instead.",
        "stability": "deprecated"
      },
      "fqn": "projen.release.JsiiReleaseMaven",
      "interfaces": [
        "projen.release.MavenPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1077
      },
      "name": "JsiiReleaseMaven",
      "namespace": "release",
      "symbolId": "src/release/publisher:JsiiReleaseMaven"
    },
    "projen.release.JsiiReleaseNpm": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "Use `NpmPublishOptions` instead.",
        "stability": "deprecated"
      },
      "fqn": "projen.release.JsiiReleaseNpm",
      "interfaces": [
        "projen.release.NpmPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 892
      },
      "name": "JsiiReleaseNpm",
      "namespace": "release",
      "symbolId": "src/release/publisher:JsiiReleaseNpm"
    },
    "projen.release.JsiiReleaseNuget": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "Use `NugetPublishOptions` instead.",
        "stability": "deprecated"
      },
      "fqn": "projen.release.JsiiReleaseNuget",
      "interfaces": [
        "projen.release.NugetPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1055
      },
      "name": "JsiiReleaseNuget",
      "namespace": "release",
      "symbolId": "src/release/publisher:JsiiReleaseNuget"
    },
    "projen.release.JsiiReleasePyPi": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "Use `PyPiPublishOptions` instead.",
        "stability": "deprecated"
      },
      "fqn": "projen.release.JsiiReleasePyPi",
      "interfaces": [
        "projen.release.PyPiPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1019
      },
      "name": "JsiiReleasePyPi",
      "namespace": "release",
      "symbolId": "src/release/publisher:JsiiReleasePyPi"
    },
    "projen.release.ManualReleaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.release.ManualReleaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/release-trigger.ts",
        "line": 12
      },
      "name": "ManualReleaseOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Maintain a project-level changelog."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 18
          },
          "name": "changelog",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'CHANGELOG.md'",
            "remarks": "Ignored if `changelog` is false.",
            "stability": "experimental",
            "summary": "Project-level changelog file path."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 27
          },
          "name": "changelogPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Set to an empty string to disable pushing.",
            "stability": "experimental",
            "summary": "Override git-push command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 34
          },
          "name": "gitPushCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/release-trigger:ManualReleaseOptions"
    },
    "projen.release.MavenPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for Maven releases."
      },
      "fqn": "projen.release.MavenPublishOptions",
      "interfaces": [
        "projen.release.CommonPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1082
      },
      "name": "MavenPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"https://oss.sonatype.org\"",
            "remarks": "if not set, defaults to https://oss.sonatype.org",
            "stability": "experimental",
            "summary": "URL of Nexus repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1088
          },
          "name": "mavenEndpoint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"MAVEN_GPG_PRIVATE_KEY_PASSPHRASE\" or not set when using GitHub Packages",
            "remarks": "This is used to sign your Maven packages. See instructions.",
            "see": "https://github.com/aws/publib#maven",
            "stability": "experimental",
            "summary": "GitHub secret name which contains the GPG private key or file that includes it."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1121
          },
          "name": "mavenGpgPrivateKeyPassphrase",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"MAVEN_GPG_PRIVATE_KEY\" or not set when using GitHub Packages",
            "remarks": "This is used to sign your Maven\npackages. See instructions.",
            "see": "https://github.com/aws/publib#maven",
            "stability": "experimental",
            "summary": "GitHub secret name which contains the GPG private key or file that includes it."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1112
          },
          "name": "mavenGpgPrivateKeySecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"MAVEN_PASSWORD\" or \"GITHUB_TOKEN\" when using GitHub Packages",
            "remarks": "For Maven Central, you will need to Create JIRA account and then request a\nnew project (see links).",
            "see": "https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134",
            "stability": "experimental",
            "summary": "GitHub secret name which contains the Password for maven repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1147
          },
          "name": "mavenPassword",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- not set",
            "stability": "experimental",
            "summary": "Deployment repository when not deploying to Maven Central."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1102
          },
          "name": "mavenRepositoryUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"ossrh\" (Maven Central) or \"github\" when using GitHub Packages",
            "stability": "experimental",
            "summary": "Used in maven settings for credential lookup (e.g. use github when publishing to GitHub)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1095
          },
          "name": "mavenServerId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"MAVEN_STAGING_PROFILE_ID\" or not set when using GitHub Packages",
            "stability": "experimental",
            "summary": "GitHub secret name which contains the Maven Central (sonatype) staging profile ID (e.g. 68a05363083174). Staging profile ID can be found in the URL of the \"Releases\" staging profile under \"Staging Profiles\" in https://oss.sonatype.org (e.g. https://oss.sonatype.org/#stagingProfiles;11a33451234521)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1158
          },
          "name": "mavenStagingProfileId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"MAVEN_USERNAME\" or the GitHub Actor when using GitHub Packages",
            "remarks": "For Maven Central, you will need to Create JIRA account and then request a\nnew project (see links).",
            "see": "https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134",
            "stability": "experimental",
            "summary": "GitHub secret name which contains the Username for maven repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1134
          },
          "name": "mavenUsername",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:MavenPublishOptions"
    },
    "projen.release.NpmPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for npm release."
      },
      "fqn": "projen.release.NpmPublishOptions",
      "interfaces": [
        "projen.release.CommonPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 897
      },
      "name": "NpmPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "stability": "experimental",
            "summary": "Options for publishing npm package to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 953
          },
          "name": "codeArtifactOptions",
          "optional": true,
          "type": {
            "fqn": "projen.release.CodeArtifactOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "deprecated": "Use `npmDistTag` for each release branch instead.",
            "remarks": "For example, a project might choose to have multiple streams of development\nand use a different tag for each stream, e.g., stable, beta, dev, canary.\n\nBy default, the `latest` tag is used by npm to identify the current version\nof a package, and `npm install <pkg>` (without any `@<version>` or `@<tag>`\nspecifier) installs the latest tag. Typically, projects only use the\n`latest` tag for stable release versions, and use other tags for unstable\nversions such as prereleases.\n\nThe `next` tag is used by some projects to identify the upcoming version.",
            "stability": "deprecated",
            "summary": "Tags can be used to provide an alias instead of version numbers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 915
          },
          "name": "distTag",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "remarks": "Note that this component is using `publib` to publish packages,\nwhich is using npm internally and supports provenance statements independently of the package manager used.",
            "see": "https://docs.npmjs.com/generating-provenance-statements",
            "stability": "experimental",
            "summary": "Should provenance statements be generated when package is published."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 946
          },
          "name": "npmProvenance",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- \"NPM_TOKEN\" or \"GITHUB_TOKEN\" if `registry` is set to `npm.pkg.github.com`.",
            "stability": "experimental",
            "summary": "GitHub secret which contains the NPM token to use when publishing packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 935
          },
          "name": "npmTokenSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"registry.npmjs.org\"",
            "example": "\"npm.pkg.github.com\"",
            "remarks": "To publish to GitHub Packages, set this value to `\"npm.pkg.github.com\"`. In\nthis if `npmTokenSecret` is not specified, it will default to\n`GITHUB_TOKEN` which means that you will be able to publish to the\nrepository's package store. In this case, make sure `repositoryUrl` is\ncorrectly defined.",
            "stability": "experimental",
            "summary": "The domain name of the npm package registry."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 929
          },
          "name": "registry",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:NpmPublishOptions"
    },
    "projen.release.NugetPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for NuGet releases."
      },
      "fqn": "projen.release.NugetPublishOptions",
      "interfaces": [
        "projen.release.CommonPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1060
      },
      "name": "NugetPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"NUGET_API_KEY\"",
            "stability": "experimental",
            "summary": "GitHub secret which contains the API key for NuGet."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1066
          },
          "name": "nugetApiKeySecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "NuGet Server URL (defaults to nuget.org)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1071
          },
          "name": "nugetServer",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:NugetPublishOptions"
    },
    "projen.release.Publisher": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "Under the hood, it uses https://github.com/aws/publib",
        "stability": "experimental",
        "summary": "Implements GitHub jobs for publishing modules to package managers."
      },
      "fqn": "projen.release.Publisher",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/release/publisher.ts",
          "line": 175
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.release.PublisherOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 143
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds post publishing steps for the GitHub release job."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 233
          },
          "name": "addGitHubPostPublishingSteps",
          "parameters": [
            {
              "docs": {
                "summary": "The steps."
              },
              "name": "steps",
              "type": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds pre publishing steps for the GitHub release job."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 224
          },
          "name": "addGitHubPrePublishingSteps",
          "parameters": [
            {
              "docs": {
                "summary": "The steps."
              },
              "name": "steps",
              "type": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "This includes generating a project-level changelog and release tags.",
            "stability": "experimental",
            "summary": "Publish to git."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 244
          },
          "name": "publishToGit",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "type": {
                "fqn": "projen.release.GitPublishOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.Task"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Creates a GitHub Release."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 285
          },
          "name": "publishToGitHubReleases",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "type": {
                "fqn": "projen.release.GitHubReleasesPublishOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a go publishing job."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 588
          },
          "name": "publishToGo",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.GoPublishOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Publishes artifacts from `java/**` to Maven."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 446
          },
          "name": "publishToMaven",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.MavenPublishOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Publishes artifacts from `js/**` to npm."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 314
          },
          "name": "publishToNpm",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.NpmPublishOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Publishes artifacts from `dotnet/**` to NuGet Gallery."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 413
          },
          "name": "publishToNuget",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.NugetPublishOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Publishes wheel artifacts from `python` to PyPI."
          },
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 511
          },
          "name": "publishToPyPi",
          "parameters": [
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.PyPiPublishOptions"
              }
            }
          ]
        }
      ],
      "name": "Publisher",
      "namespace": "release",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 144
          },
          "name": "PUBLISH_GIT_TASK_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 147
          },
          "name": "artifactName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 146
          },
          "name": "buildJobId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "use `publibVersion`",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 152
          },
          "name": "jsiiReleaseVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 148
          },
          "name": "publibVersion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 149
          },
          "name": "condition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:Publisher"
    },
    "projen.release.PublisherOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Publisher`."
      },
      "fqn": "projen.release.PublisherOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 38
      },
      "name": "PublisherOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The artifact is expected to include a subdirectory for each release target:\n`go` (GitHub), `dotnet` (NuGet), `java` (Maven), `js` (npm), `python`\n(PyPI).",
            "see": "https://github.com/aws/publib",
            "stability": "experimental",
            "summary": "The name of the artifact to download (e.g. `dist`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 60
          },
          "name": "artifactName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "All publish jobs will take a dependency on this job.",
            "stability": "experimental",
            "summary": "The job ID that produces the build artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 42
          },
          "name": "buildJobId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no condition",
            "stability": "experimental",
            "summary": "A GitHub workflow expression used as a condition for publishers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 49
          },
          "name": "condition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Useful if you wish to block all publishing from a single option.",
            "stability": "experimental",
            "summary": "Do not actually publish, only print the commands that would be executed instead."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 135
          },
          "name": "dryRun",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Create an issue when a publish task fails."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 95
          },
          "name": "failureIssue",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"failed-release\"",
            "remarks": "Only applies if `failureIssue` is true.",
            "stability": "experimental",
            "summary": "The label to apply to the issue marking failed publish tasks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 103
          },
          "name": "failureIssueLabel",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "use `publibVersion` instead",
            "stability": "deprecated"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 65
          },
          "name": "jsiiReleaseVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "stability": "experimental",
            "summary": "Version requirement for `publib`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 88
          },
          "name": "publibVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Normally, publishing only happens within automated workflows. Enable this\nin order to create a publishing task for each publishing activity.",
            "stability": "experimental",
            "summary": "Define publishing tasks that can be executed manually as well as workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 128
          },
          "name": "publishTasks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default image",
            "stability": "experimental",
            "summary": "Container image to use for GitHub workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 81
          },
          "name": "workflowContainerImage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "lts/*",
            "remarks": "For example `publib`, the CLI projen uses to publish releases,\nis an npm library.",
            "stability": "experimental",
            "summary": "Node version to setup in GitHub workflows if any node-based CLI utilities are needed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 74
          },
          "name": "workflowNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 111
          },
          "name": "workflowRunsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 118
          },
          "name": "workflowRunsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        }
      ],
      "symbolId": "src/release/publisher:PublisherOptions"
    },
    "projen.release.PyPiPublishOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for PyPI release."
      },
      "fqn": "projen.release.PyPiPublishOptions",
      "interfaces": [
        "projen.release.CommonPublishOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/publisher.ts",
        "line": 1024
      },
      "name": "PyPiPublishOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- undefined",
            "stability": "experimental",
            "summary": "Options for publishing to AWS CodeArtifact."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1049
          },
          "name": "codeArtifactOptions",
          "optional": true,
          "type": {
            "fqn": "projen.release.CodeArtifactOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"TWINE_PASSWORD\"",
            "stability": "experimental",
            "summary": "The GitHub secret which contains PyPI password."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1042
          },
          "name": "twinePasswordSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- twine default",
            "stability": "experimental",
            "summary": "The registry url to use when releasing packages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1030
          },
          "name": "twineRegistryUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"TWINE_USERNAME\"",
            "stability": "experimental",
            "summary": "The GitHub secret which contains PyPI user name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/publisher.ts",
            "line": 1036
          },
          "name": "twineUsernameSecret",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/publisher:PyPiPublishOptions"
    },
    "projen.release.Release": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "By default, no branches are released. To add branches, call `addBranch()`.",
        "stability": "experimental",
        "summary": "Manages releases (currently through GitHub workflows)."
      },
      "fqn": "projen.release.Release",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/release/release.ts",
          "line": 384
        },
        "parameters": [
          {
            "docs": {
              "summary": "should be part of the project the Release belongs to."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.IConstruct"
            }
          },
          {
            "docs": {
              "summary": "options to configure the Release Component."
            },
            "name": "options",
            "type": {
              "fqn": "projen.release.ReleaseOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/release/release.ts",
        "line": 340
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Returns the `Release` component of a project or `undefined` if the project does not have a Release component."
          },
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 348
          },
          "name": "of",
          "parameters": [
            {
              "name": "project",
              "type": {
                "fqn": "projen.Project"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "projen.release.Release"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "It is a git branch from which releases are published. If a project has more than one release\nbranch, we require that `majorVersion` is also specified for the primary branch in order to\nensure branches always release the correct version.",
            "stability": "experimental",
            "summary": "Adds a release branch."
          },
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 521
          },
          "name": "addBranch",
          "parameters": [
            {
              "docs": {
                "summary": "The branch to monitor (e.g. `main`, `v2.x`)."
              },
              "name": "branch",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Branch definition."
              },
              "name": "options",
              "type": {
                "fqn": "projen.release.BranchOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds jobs to all release workflows."
          },
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 588
          },
          "name": "addJobs",
          "parameters": [
            {
              "docs": {
                "summary": "The jobs to add (name => job)."
              },
              "name": "jobs",
              "type": {
                "collection": {
                  "elementtype": {
                    "fqn": "projen.github.workflows.Job"
                  },
                  "kind": "map"
                }
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 571
          },
          "name": "preSynthesize",
          "overrides": "projen.Component"
        }
      ],
      "name": "Release",
      "namespace": "release",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 341
          },
          "name": "ANTI_TAMPER_CMD",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Location of build artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 361
          },
          "name": "artifactsDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Retrieve all release branch names."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 597
          },
          "name": "branches",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Package publisher."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 356
          },
          "name": "publisher",
          "type": {
            "fqn": "projen.release.Publisher"
          }
        }
      ],
      "symbolId": "src/release/release:Release"
    },
    "projen.release.ReleaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `Release`."
      },
      "fqn": "projen.release.ReleaseOptions",
      "interfaces": [
        "projen.release.ReleaseProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/release.ts",
        "line": 280
      },
      "name": "ReleaseOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"dist\"",
            "stability": "experimental",
            "summary": "A directory which will contain build artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 317
          },
          "name": "artifactsDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Use `majorVersion` to restrict this branch to only publish releases with a\nspecific major version.\n\nYou can add additional branches using `addBranch()`.",
            "stability": "experimental",
            "summary": "The default branch name to release from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 303
          },
          "name": "branch",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Artifacts are\nexpected to reside under `artifactsDirectory` (defaults to `dist/`) once\nbuild is complete.",
            "stability": "experimental",
            "summary": "The task to execute in order to create the release artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 286
          },
          "name": "task",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "\"package.json\"",
            "stability": "experimental",
            "summary": "A name of a .json file to set the `version` field in after a bump."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 293
          },
          "name": "versionFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Create a GitHub release for each release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 310
          },
          "name": "githubRelease",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"lts/*\"\"",
            "remarks": "For example `publib`, the CLI projen uses to publish releases,\nis an npm library.",
            "stability": "experimental",
            "summary": "Node version to setup in GitHub workflows if any node-based CLI utilities are needed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 326
          },
          "name": "workflowNodeVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "`{ contents: JobPermission.WRITE }`",
            "stability": "experimental",
            "summary": "Permissions granted to the release workflow job."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 332
          },
          "name": "workflowPermissions",
          "optional": true,
          "type": {
            "fqn": "projen.github.workflows.JobPermissions"
          }
        }
      ],
      "symbolId": "src/release/release:ReleaseOptions"
    },
    "projen.release.ReleaseProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Project options for release."
      },
      "fqn": "projen.release.ReleaseProjectOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/release.ts",
        "line": 53
      },
      "name": "ReleaseProjectOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- A recent version of \"commit-and-tag-version\"",
            "remarks": "This can be any compatible package version, including the deprecated `standard-version@9`.",
            "stability": "experimental",
            "summary": "The `commit-and-tag-version` compatible package used to bump the package version, as a dependency string."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 249
          },
          "name": "bumpPackage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "stability": "experimental",
            "summary": "Version requirement of `publib` which is used to publish modules to npm."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 96
          },
          "name": "jsiiReleaseVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Major version is not enforced.",
            "remarks": "If this is specified, we bump the latest version of this major version line.\nIf not specified, we bump the global latest version.",
            "stability": "experimental",
            "summary": "Major version to release from the default branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 112
          },
          "name": "majorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No minimum version is being enforced",
            "remarks": "This can be useful to set to 1, as breaking changes before the 1.x major\nrelease are not incrementing the major version number.\n\nCan not be set together with `majorVersion`.",
            "stability": "experimental",
            "summary": "Minimal Major version to release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 125
          },
          "name": "minMajorVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The next version will be determined based on the commit history and project settings.",
            "remarks": "If present, this shell command will be run before the bump is executed, and\nit determines what version to release. It will be executed in the following\nenvironment:\n\n- Working directory: the project directory.\n- `$VERSION`: the current version. Looks like `1.2.3`.\n- `$LATEST_TAG`: the most recent tag. Looks like `prefix-v1.2.3`, or may be unset.\n\nThe command should print one of the following to `stdout`:\n\n- Nothing: the next version number will be determined based on commit history.\n- `x.y.z`: the next version number will be `x.y.z`.\n- `major|minor|patch`: the next version number will be the current version number\n  with the indicated component bumped.\n\nThis setting cannot be specified together with `minMajorVersion`; the invoked\nscript can be used to achieve the effects of `minMajorVersion`.",
            "stability": "experimental",
            "summary": "A shell command to control the next version to release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 274
          },
          "name": "nextVersionCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "remarks": "To set the npm dist-tag for release branches, set the `npmDistTag` property\nfor each branch.",
            "stability": "experimental",
            "summary": "The npmDistTag to use when publishing from the default branch."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 143
          },
          "name": "npmDistTag",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Steps to execute after build as part of the release workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 102
          },
          "name": "postBuildSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- normal semantic versions",
            "stability": "experimental",
            "summary": "Bump versions from the default branch as pre-releases (e.g. \"beta\", \"alpha\", \"pre\")."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 133
          },
          "name": "prerelease",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Instead of actually publishing to package managers, just print the publishing command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 232
          },
          "name": "publishDryRun",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "Normally, publishing only happens within automated workflows. Enable this\nin order to create a publishing task for each publishing activity.",
            "stability": "experimental",
            "summary": "Define publishing tasks that can be executed manually as well as workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 225
          },
          "name": "publishTasks",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "ReleasableCommits.everyCommit()",
            "stability": "experimental",
            "summary": "Find commits that should be considered releasable Used to decide if a release is required."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 240
          },
          "name": "releasableCommits",
          "optional": true,
          "type": {
            "fqn": "projen.ReleasableCommits"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional branches are used for release. you can use\n`addBranch()` to add additional branches.",
            "remarks": "A workflow will be created for each\nrelease branch which will publish releases from commits in this branch.\nEach release branch _must_ be assigned a major version number which is used\nto enforce that versions published from that branch always use that major\nversion. If multiple branches are used, the `majorVersion` field must also\nbe provided for the default branch.",
            "stability": "experimental",
            "summary": "Defines additional release branches."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 163
          },
          "name": "releaseBranches",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.release.BranchOptions"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "deprecated": "Use `releaseTrigger: ReleaseTrigger.continuous()` instead",
            "stability": "deprecated",
            "summary": "Automatically release new versions every commit to one of branches in `releaseBranches`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 61
          },
          "name": "releaseEveryCommit",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Create a github issue on every failed publishing task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 170
          },
          "name": "releaseFailureIssue",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"failed-release\"",
            "remarks": "Only applies if `releaseFailureIssue` is true.",
            "stability": "experimental",
            "summary": "The label to apply to issues indicating publish failures."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 178
          },
          "name": "releaseFailureIssueLabel",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no scheduled releases",
            "deprecated": "Use `releaseTrigger: ReleaseTrigger.scheduled()` instead",
            "stability": "deprecated",
            "summary": "CRON schedule to trigger new releases."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 70
          },
          "name": "releaseSchedule",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"v\"",
            "remarks": "Note: this prefix is used to detect the latest tagged version\nwhen bumping, so if you change this on a project with an existing version\nhistory, you may need to manually tag your latest release\nwith the new prefix.",
            "stability": "experimental",
            "summary": "Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 192
          },
          "name": "releaseTagPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Continuous releases (`ReleaseTrigger.continuous()`)",
            "stability": "experimental",
            "summary": "The release trigger to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 77
          },
          "name": "releaseTrigger",
          "optional": true,
          "type": {
            "fqn": "projen.release.ReleaseTrigger"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"release\"",
            "stability": "experimental",
            "summary": "The name of the default release workflow."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 150
          },
          "name": "releaseWorkflowName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "A set of workflow steps to execute in order to setup the workflow container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 83
          },
          "name": "releaseWorkflowSetupSteps",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.github.workflows.JobStep"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- standard configuration applicable for GitHub repositories",
            "remarks": "Given values either append to default configuration or overwrite values in it.",
            "stability": "experimental",
            "summary": "Custom configuration used when creating changelog with commit-and-tag-version package."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 200
          },
          "name": "versionrcOptions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default image",
            "stability": "experimental",
            "summary": "Container image to use for GitHub workflows."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 90
          },
          "name": "workflowContainerImage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner by labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "default": "[\"ubuntu-latest\"]",
            "stability": "experimental",
            "summary": "Github Runner selection labels."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 208
          },
          "name": "workflowRunsOn",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "description": "Defines a target Runner Group by name and/or labels",
              "throws": "{Error} if both `runsOn` and `runsOnGroup` are specified"
            },
            "stability": "experimental",
            "summary": "Github Runner Group selection options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release.ts",
            "line": 215
          },
          "name": "workflowRunsOnGroup",
          "optional": true,
          "type": {
            "fqn": "projen.GroupRunnerOptions"
          }
        }
      ],
      "symbolId": "src/release/release:ReleaseProjectOptions"
    },
    "projen.release.ReleaseTrigger": {
      "assembly": "projen",
      "docs": {
        "remarks": "This includes release\nand release artifact automation",
        "stability": "experimental",
        "summary": "Used to manage release strategies."
      },
      "fqn": "projen.release.ReleaseTrigger",
      "kind": "class",
      "locationInModule": {
        "filename": "src/release/release-trigger.ts",
        "line": 90
      },
      "methods": [
        {
          "docs": {
            "remarks": "Automated releases will occur on every commit.",
            "stability": "experimental",
            "summary": "Creates a continuous release trigger."
          },
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 153
          },
          "name": "continuous",
          "parameters": [
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.ContinuousReleaseOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.release.ReleaseTrigger"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Use this option if you want totally manual releases.\n\nThis will give you a release task that, in addition to the normal\nrelease activities will trigger a `publish:git` task. This task will\nhandle project-level changelog management, release tagging, and pushing\nthese artifacts to origin.\n\nThe command used for pushing can be customised by specifying\n`gitPushCommand`. Set to an empty string to disable pushing entirely.\n\nSimply run `yarn release` to trigger a manual release.",
            "stability": "experimental",
            "summary": "Creates a manual release trigger."
          },
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 108
          },
          "name": "manual",
          "parameters": [
            {
              "docs": {
                "summary": "release options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "projen.release.ManualReleaseOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.release.ReleaseTrigger"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Automated releases will occur based on the provided cron schedule.",
            "stability": "experimental",
            "summary": "Creates a scheduled release trigger."
          },
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 128
          },
          "name": "scheduled",
          "parameters": [
            {
              "docs": {
                "summary": "release options."
              },
              "name": "options",
              "type": {
                "fqn": "projen.release.ScheduledReleaseOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.release.ReleaseTrigger"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The release can only be triggered using the GitHub UI."
          },
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 137
          },
          "name": "workflowDispatch",
          "returns": {
            "type": {
              "fqn": "projen.release.ReleaseTrigger"
            }
          },
          "static": true
        }
      ],
      "name": "ReleaseTrigger",
      "namespace": "release",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Whether or not this is a continuous release."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 177
          },
          "name": "isContinuous",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "remarks": "If the `ReleaseTrigger` is a GitHub-only manual task, this will return `false`.",
            "stability": "experimental",
            "summary": "Whether or not this is a release trigger with a manual task run in a working copy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 207
          },
          "name": "isManual",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Project-level changelog file path."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 163
          },
          "name": "changelogPath",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Set to an empty string to disable pushing.",
            "stability": "experimental",
            "summary": "Override git-push command used when releasing manually."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 189
          },
          "name": "gitPushCommand",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Paths for which pushes will trigger a release when `isContinuous` is `true`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 182
          },
          "name": "paths",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "example": "'0 17 * * *' - every day at 5 pm",
            "remarks": "Only defined if this is a scheduled release.",
            "stability": "experimental",
            "summary": "Cron schedule for releases."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 172
          },
          "name": "schedule",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/release-trigger:ReleaseTrigger"
    },
    "projen.release.ScheduledReleaseOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.release.ScheduledReleaseOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/release/release-trigger.ts",
        "line": 1
      },
      "name": "ScheduledReleaseOptions",
      "namespace": "release",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "example": "'0 17 * * *' - every day at 5 pm",
            "remarks": "Only defined if this is a scheduled release.",
            "stability": "experimental",
            "summary": "Cron schedule for releases."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/release/release-trigger.ts",
            "line": 9
          },
          "name": "schedule",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/release/release-trigger:ScheduledReleaseOptions"
    },
    "projen.typescript.Projenrc": {
      "assembly": "projen",
      "base": "projen.ProjenrcFile",
      "docs": {
        "stability": "experimental",
        "summary": "Sets up a typescript project to use TypeScript for projenrc."
      },
      "fqn": "projen.typescript.Projenrc",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/typescript/projenrc.ts",
          "line": 41
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.typescript.TypeScriptProject"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.typescript.ProjenrcOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/projenrc.ts",
        "line": 35
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/typescript/projenrc.ts",
            "line": 74
          },
          "name": "preSynthesize",
          "overrides": "projen.ProjenrcFile"
        }
      ],
      "name": "Projenrc",
      "namespace": "typescript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The path of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc.ts",
            "line": 36
          },
          "name": "filePath",
          "overrides": "projen.ProjenrcFile",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/typescript/projenrc:Projenrc"
    },
    "projen.typescript.ProjenrcOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.typescript.ProjenrcOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/typescript/projenrc.ts",
        "line": 7
      },
      "name": "ProjenrcOptions",
      "namespace": "typescript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".projenrc.ts\"",
            "stability": "experimental",
            "summary": "The name of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc.ts",
            "line": 12
          },
          "name": "filename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"projenrc\"",
            "stability": "experimental",
            "summary": "A directory tree that may contain *.ts files that can be referenced from your projenrc typescript file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc.ts",
            "line": 20
          },
          "name": "projenCodeDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether to use `SWC` for ts-node."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc.ts",
            "line": 27
          },
          "name": "swc",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/typescript/projenrc:ProjenrcOptions"
    },
    "projen.typescript.ProjenrcTs": {
      "assembly": "projen",
      "base": "projen.ProjenrcFile",
      "docs": {
        "remarks": "This component can be instantiated in any type of project\nand has no expectations around the project's main language.\n\nRequires that `npx` is available.",
        "stability": "experimental",
        "summary": "A projenrc file written in TypeScript."
      },
      "fqn": "projen.typescript.ProjenrcTs",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/typescript/projenrc-ts.ts",
          "line": 50
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.typescript.ProjenrcTsOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/projenrc-ts.ts",
        "line": 42
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Called before synthesis."
          },
          "locationInModule": {
            "filename": "src/typescript/projenrc-ts.ts",
            "line": 72
          },
          "name": "preSynthesize",
          "overrides": "projen.ProjenrcFile"
        }
      ],
      "name": "ProjenrcTs",
      "namespace": "typescript",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The path of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc-ts.ts",
            "line": 47
          },
          "name": "filePath",
          "overrides": "projen.ProjenrcFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "TypeScript configuration file used to compile projen source files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc-ts.ts",
            "line": 46
          },
          "name": "tsconfig",
          "type": {
            "fqn": "projen.javascript.TypescriptConfig"
          }
        }
      ],
      "symbolId": "src/typescript/projenrc-ts:ProjenrcTs"
    },
    "projen.typescript.ProjenrcTsOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.typescript.ProjenrcTsOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/typescript/projenrc-ts.ts",
        "line": 8
      },
      "name": "ProjenrcTsOptions",
      "namespace": "typescript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\".projenrc.ts\"",
            "stability": "experimental",
            "summary": "The name of the projenrc file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc-ts.ts",
            "line": 13
          },
          "name": "filename",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"projenrc\"",
            "stability": "experimental",
            "summary": "A directory tree that may contain *.ts files that can be referenced from your projenrc typescript file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc-ts.ts",
            "line": 21
          },
          "name": "projenCodeDir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tsconfig.projen.json\"",
            "stability": "experimental",
            "summary": "The name of the tsconfig file that will be used by ts-node when compiling projen source files."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/projenrc-ts.ts",
            "line": 29
          },
          "name": "tsconfigFileName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/typescript/projenrc-ts:ProjenrcTsOptions"
    },
    "projen.typescript.TsJestBabelConfig": {
      "assembly": "projen",
      "docs": {
        "see": "https://kulshekhar.github.io/ts-jest/docs/getting-started/options/babelConfig/",
        "stability": "experimental"
      },
      "fqn": "projen.typescript.TsJestBabelConfig",
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 32
      },
      "methods": [
        {
          "docs": {
            "remarks": "`ts-jest` will try to find an existing Babel configuration and pass it to the `babel-jest` processor.",
            "stability": "experimental",
            "summary": "Enables Babel processing."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 45
          },
          "name": "autoDetectConfig",
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestBabelConfig"
            }
          },
          "static": true
        },
        {
          "docs": {
            "see": "https://babeljs.io/docs/options",
            "stability": "experimental",
            "summary": "Inline compiler options."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 62
          },
          "name": "custom",
          "parameters": [
            {
              "name": "config",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestBabelConfig"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Disables the use of Babel."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 36
          },
          "name": "disabled",
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestBabelConfig"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "The path should be relative to the current working directory where you start Jest from. You can also use `<rootDir>` in the path.",
            "stability": "experimental",
            "summary": "Path to a babelrc file."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 54
          },
          "name": "fromFile",
          "parameters": [
            {
              "name": "filePath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestBabelConfig"
            }
          },
          "static": true
        }
      ],
      "name": "TsJestBabelConfig",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript:TsJestBabelConfig"
    },
    "projen.typescript.TsJestDiagnostics": {
      "assembly": "projen",
      "docs": {
        "see": "https://kulshekhar.github.io/ts-jest/docs/getting-started/options/diagnostics/",
        "stability": "experimental"
      },
      "fqn": "projen.typescript.TsJestDiagnostics",
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 82
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Enable all diagnostics."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 86
          },
          "name": "all",
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestDiagnostics"
            }
          },
          "static": true
        },
        {
          "docs": {
            "see": "https://kulshekhar.github.io/ts-jest/docs/getting-started/options/diagnostics/",
            "stability": "experimental",
            "summary": "Provide a custom diagnostics configuration."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 102
          },
          "name": "custom",
          "parameters": [
            {
              "name": "config",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestDiagnostics"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Disable all diagnostics."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 93
          },
          "name": "none",
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestDiagnostics"
            }
          },
          "static": true
        }
      ],
      "name": "TsJestDiagnostics",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript:TsJestDiagnostics"
    },
    "projen.typescript.TsJestOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.typescript.TsJestOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 223
      },
      "name": "TsJestOptions",
      "namespace": "typescript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Override the default ts-jest transformer configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 235
          },
          "name": "transformOptions",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.TsJestTransformOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"^.+\\\\.[t]sx?$\"",
            "see": "https://jestjs.io/docs/configuration#transform-objectstring-pathtotransformer--pathtotransformer-object",
            "stability": "experimental",
            "summary": "Which files should ts-jest act upon."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 231
          },
          "name": "transformPattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/typescript/typescript:TsJestOptions"
    },
    "projen.typescript.TsJestTransformOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://kulshekhar.github.io/ts-jest/docs/getting-started/options",
        "stability": "experimental"
      },
      "fqn": "projen.typescript.TsJestTransformOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 169
      },
      "name": "TsJestTransformOptions",
      "namespace": "typescript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "auto",
            "stability": "experimental",
            "summary": "Custom TypeScript AST transformers."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 175
          },
          "name": "astTransformers",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "TsJestBabelConfig.disabled()",
            "stability": "experimental",
            "summary": "Babel(Jest) related configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 181
          },
          "name": "babelConfig",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.TsJestBabelConfig"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"typescript\"",
            "stability": "experimental",
            "summary": "TypeScript module to use as compiler."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 187
          },
          "name": "compiler",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "TsJestDiagnostics.all()",
            "stability": "experimental",
            "summary": "Diagnostics related configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 193
          },
          "name": "diagnostics",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.TsJestDiagnostics"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "You'll lose type-checking ability and some features such as const enum, but in the case you plan on using Jest with the cache disabled (jest --no-cache), your tests will then run much faster.",
            "see": "https://kulshekhar.github.io/ts-jest/docs/getting-started/options/isolatedModules",
            "stability": "experimental",
            "summary": "Run ts-jest tests with this TSConfig isolatedModules setting."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 202
          },
          "name": "isolatedModules",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "disabled",
            "stability": "experimental",
            "summary": "Files which will become modules returning self content."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 208
          },
          "name": "stringifyContentPathRegex",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Your project's `tsconfigDev` file.",
            "stability": "experimental",
            "summary": "TypeScript compiler related configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 214
          },
          "name": "tsconfig",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.TsJestTsconfig"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto",
            "stability": "experimental",
            "summary": "Enable ESM support."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 220
          },
          "name": "useESM",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/typescript/typescript:TsJestTransformOptions"
    },
    "projen.typescript.TsJestTsconfig": {
      "assembly": "projen",
      "docs": {
        "see": "https://kulshekhar.github.io/ts-jest/docs/getting-started/options/tsconfig/",
        "stability": "experimental"
      },
      "fqn": "projen.typescript.TsJestTsconfig",
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 120
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Uses `tsconfig.json` if found, or the built-in default TypeScript compiler options."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 124
          },
          "name": "auto",
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestTsconfig"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Force` ts-jest` to use its built-in defaults even if there is a `tsconfig.json` in your project."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 131
          },
          "name": "builtInDefaults",
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestTsconfig"
            }
          },
          "static": true
        },
        {
          "docs": {
            "see": "TypescriptConfigOptions",
            "stability": "experimental",
            "summary": "Inline compiler options."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 149
          },
          "name": "custom",
          "parameters": [
            {
              "name": "config",
              "type": {
                "fqn": "projen.javascript.TypescriptConfigOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestTsconfig"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "The path should be relative to the current working directory where you start Jest from. You can also use `<rootDir>` in the path to start from the project root dir.",
            "stability": "experimental",
            "summary": "Path to a `tsconfig` file."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 140
          },
          "name": "fromFile",
          "parameters": [
            {
              "name": "filePath",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "projen.typescript.TsJestTsconfig"
            }
          },
          "static": true
        }
      ],
      "name": "TsJestTsconfig",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript:TsJestTsconfig"
    },
    "projen.typescript.TypeScriptAppProject": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptProject",
      "docs": {
        "custom": {
          "pjid": "typescript-app"
        },
        "stability": "experimental",
        "summary": "TypeScript app."
      },
      "fqn": "projen.typescript.TypeScriptAppProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/typescript/typescript.ts",
          "line": 822
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.typescript.TypeScriptProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 821
      },
      "name": "TypeScriptAppProject",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript:TypeScriptAppProject"
    },
    "projen.typescript.TypeScriptLibraryProject": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptProject",
      "docs": {
        "deprecated": "use `TypeScriptProject`",
        "stability": "deprecated"
      },
      "fqn": "projen.typescript.TypeScriptLibraryProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/typescript/typescript.ts",
          "line": 404
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.typescript.TypeScriptProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 839
      },
      "name": "TypeScriptLibraryProject",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript:TypeScriptLibraryProject"
    },
    "projen.typescript.TypeScriptLibraryProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "use TypeScriptProjectOptions",
        "stability": "deprecated"
      },
      "fqn": "projen.typescript.TypeScriptLibraryProjectOptions",
      "interfaces": [
        "projen.typescript.TypeScriptProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 844
      },
      "name": "TypeScriptLibraryProjectOptions",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript:TypeScriptLibraryProjectOptions"
    },
    "projen.typescript.TypeScriptProject": {
      "assembly": "projen",
      "base": "projen.javascript.NodeProject",
      "docs": {
        "custom": {
          "pjid": "typescript"
        },
        "stability": "experimental",
        "summary": "TypeScript project."
      },
      "fqn": "projen.typescript.TypeScriptProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/typescript/typescript.ts",
          "line": 404
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.typescript.TypeScriptProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 370
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Projen default Typescript compiler options."
          },
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 583
          },
          "name": "defaultTypeScriptCompilerOptions",
          "protected": true,
          "returns": {
            "type": {
              "fqn": "projen.javascript.TypeScriptCompilerOptions"
            }
          }
        }
      ],
      "name": "TypeScriptProject",
      "namespace": "typescript",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 371
          },
          "name": "DEFAULT_TS_JEST_TRANFORM_PATTERN",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 374
          },
          "name": "docsDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which compiled .js files reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 392
          },
          "name": "libdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which the .ts sources reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 387
          },
          "name": "srcdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which tests reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 397
          },
          "name": "testdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "A typescript configuration file which covers all files (sources, tests, projen)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 382
          },
          "name": "tsconfigDev",
          "type": {
            "fqn": "projen.javascript.TypescriptConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The \"watch\" task."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 402
          },
          "name": "watchTask",
          "type": {
            "fqn": "projen.Task"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 373
          },
          "name": "docgen",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 375
          },
          "name": "eslint",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.Eslint"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 377
          },
          "name": "tsconfig",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypescriptConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 376
          },
          "name": "tsconfigEslint",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypescriptConfig"
          }
        }
      ],
      "symbolId": "src/typescript/typescript:TypeScriptProject"
    },
    "projen.typescript.TypeScriptProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.typescript.TypeScriptProjectOptions",
      "interfaces": [
        "projen.javascript.NodeProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/typescript/typescript.ts",
        "line": 238
      },
      "name": "TypeScriptProjectOptions",
      "namespace": "typescript",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 327
          },
          "name": "disableTsconfig",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Do not generate a `tsconfig.dev.json` file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 333
          },
          "name": "disableTsconfigDev",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Docgen by Typedoc."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 293
          },
          "name": "docgen",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"docs\"",
            "stability": "experimental",
            "summary": "Docs directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 300
          },
          "name": "docsDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)",
            "stability": "experimental",
            "summary": "The .d.ts file that includes the type declarations for this module."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 345
          },
          "name": "entrypointTypes",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Setup eslint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 270
          },
          "name": "eslint",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- opinionated default options",
            "stability": "experimental",
            "summary": "Eslint options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 276
          },
          "name": "eslintOptions",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.EslintOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"lib\"",
            "stability": "experimental",
            "summary": "Typescript  artifacts output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 244
          },
          "name": "libdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "pjnew": "true"
            },
            "default": "false",
            "stability": "experimental",
            "summary": "Use TypeScript for your projenrc file (`.projenrc.ts`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 353
          },
          "name": "projenrcTs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for .projenrc.ts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 358
          },
          "name": "projenrcTsOptions",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.ProjenrcOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Generate one-time sample in `src/` and `test/` if there are no files there."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 339
          },
          "name": "sampleCode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"src\"",
            "stability": "experimental",
            "summary": "Typescript sources directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 251
          },
          "name": "srcdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"test\"",
            "remarks": "If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),\nthen tests are going to be compiled into `lib/` and executed as javascript.\nIf the test directory is outside of `src`, then we configure jest to\ncompile the code in-memory.",
            "stability": "experimental",
            "summary": "Jest tests directory. Tests files should be named `xxx.test.ts`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 263
          },
          "name": "testdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- default options",
            "stability": "experimental",
            "summary": "Custom TSConfig."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 306
          },
          "name": "tsconfig",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypescriptConfigOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- use the production tsconfig options",
            "stability": "experimental",
            "summary": "Custom tsconfig options for the development tsconfig.json file (used for testing)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 312
          },
          "name": "tsconfigDev",
          "optional": true,
          "type": {
            "fqn": "projen.javascript.TypescriptConfigOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"tsconfig.dev.json\"",
            "stability": "experimental",
            "summary": "The name of the development tsconfig.json file."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 319
          },
          "name": "tsconfigDevFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Options for ts-jest."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 363
          },
          "name": "tsJestOptions",
          "optional": true,
          "type": {
            "fqn": "projen.typescript.TsJestOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"latest\"",
            "remarks": "NOTE: Typescript is not semantically versioned and should remain on the\nsame minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).",
            "stability": "experimental",
            "summary": "TypeScript version to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/typescript/typescript.ts",
            "line": 286
          },
          "name": "typescriptVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/typescript/typescript:TypeScriptProjectOptions"
    },
    "projen.typescript.TypedocDocgen": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Adds a simple Typescript documentation generator."
      },
      "fqn": "projen.typescript.TypedocDocgen",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/typescript/typescript-typedoc.ts",
          "line": 7
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.typescript.TypeScriptProject"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/typescript/typescript-typedoc.ts",
        "line": 6
      },
      "name": "TypedocDocgen",
      "namespace": "typescript",
      "symbolId": "src/typescript/typescript-typedoc:TypedocDocgen"
    },
    "projen.vscode.Console": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Controls where to launch the debug target Source: https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes."
      },
      "fqn": "projen.vscode.Console",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 9
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "INTERNAL_CONSOLE"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "INTEGRATED_TERMINAL"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "EXTERNAL_TERMINAL"
        }
      ],
      "name": "Console",
      "namespace": "vscode",
      "symbolId": "src/vscode/launch-config:Console"
    },
    "projen.vscode.DevContainer": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "remarks": "used by GitHub\ncodespaces.",
        "stability": "experimental",
        "summary": "A development environment running VSCode in a container;"
      },
      "fqn": "projen.vscode.DevContainer",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/vscode/devcontainer.ts",
          "line": 75
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.vscode.DevContainerOptions"
            }
          }
        ]
      },
      "interfaces": [
        "projen.vscode.IDevContainerEnvironment"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/vscode/devcontainer.ts",
        "line": 60
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a custom Docker image or Dockerfile for the container."
          },
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 117
          },
          "name": "addDockerImage",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "name": "image",
              "type": {
                "fqn": "projen.DevEnvironmentDockerImage"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a list of VSCode features that should be automatically installed in the container."
          },
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 158
          },
          "name": "addFeatures",
          "overrides": "projen.vscode.IDevContainerEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "featureName and version(optional default: latest)."
              },
              "name": "features",
              "type": {
                "fqn": "projen.vscode.DevContainerFeature"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds ports that should be exposed (forwarded) from the container."
          },
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 138
          },
          "name": "addPorts",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The new ports."
              },
              "name": "ports",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "Tasks will be run in sequence.",
            "stability": "experimental",
            "summary": "Adds tasks to run when the container starts."
          },
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 129
          },
          "name": "addTasks",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The new tasks."
              },
              "name": "tasks",
              "type": {
                "fqn": "projen.Task"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a list of VSCode extensions that should be automatically installed in the container."
          },
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 148
          },
          "name": "addVscodeExtensions",
          "overrides": "projen.IDevEnvironment",
          "parameters": [
            {
              "docs": {
                "summary": "The extension IDs."
              },
              "name": "extensions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "DevContainer",
      "namespace": "vscode",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Direct access to the devcontainer configuration (escape hatch)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 73
          },
          "name": "config",
          "type": {
            "primitive": "any"
          }
        }
      ],
      "symbolId": "src/vscode/devcontainer:DevContainer"
    },
    "projen.vscode.DevContainerFeature": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "see": "https://containers.dev/implementors/features/#devcontainer-json-properties",
        "stability": "experimental",
        "summary": "devcontainer features options."
      },
      "fqn": "projen.vscode.DevContainerFeature",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/devcontainer.ts",
        "line": 20
      },
      "name": "DevContainerFeature",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "feature name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 24
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "latest",
            "stability": "experimental",
            "summary": "feature version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 29
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/vscode/devcontainer:DevContainerFeature"
    },
    "projen.vscode.DevContainerOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "remarks": "The default docker image used for GitHub Codespaces is defined here:",
        "see": "https://github.com/microsoft/vscode-dev-containers/tree/master/containers/codespaces-linux",
        "stability": "experimental",
        "summary": "Constructor options for the DevContainer component."
      },
      "fqn": "projen.vscode.DevContainerOptions",
      "interfaces": [
        "projen.DevEnvironmentOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/devcontainer.ts",
        "line": 38
      },
      "name": "DevContainerOptions",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "An array of VSCode features that specify the features that should be installed inside the container when it is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 43
          },
          "name": "features",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "projen.vscode.DevContainerFeature"
              },
              "kind": "array"
            }
          }
        }
      ],
      "symbolId": "src/vscode/devcontainer:DevContainerOptions"
    },
    "projen.vscode.IDevContainerEnvironment": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.vscode.IDevContainerEnvironment",
      "interfaces": [
        "projen.IDevEnvironment"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/devcontainer.ts",
        "line": 46
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Adds a list of VSCode features that should be automatically installed in the container."
          },
          "locationInModule": {
            "filename": "src/vscode/devcontainer.ts",
            "line": 53
          },
          "name": "addFeatures",
          "parameters": [
            {
              "docs": {
                "summary": "featureName and version(optional default: latest)."
              },
              "name": "features",
              "type": {
                "fqn": "projen.vscode.DevContainerFeature"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "IDevContainerEnvironment",
      "namespace": "vscode",
      "symbolId": "src/vscode/devcontainer:IDevContainerEnvironment"
    },
    "projen.vscode.InternalConsoleOptions": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Controls the visibility of the VSCode Debug Console panel during a debugging session Source: https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes."
      },
      "fqn": "projen.vscode.InternalConsoleOptions",
      "kind": "enum",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 19
      },
      "members": [
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "NEVER_OPEN"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "OPEN_ON_FIRST_SESSION_START"
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "name": "OPEN_ON_SESSION_START"
        }
      ],
      "name": "InternalConsoleOptions",
      "namespace": "vscode",
      "symbolId": "src/vscode/launch-config:InternalConsoleOptions"
    },
    "projen.vscode.Presentation": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "VSCode launch configuration Presentation interface \"using the order, group, and hidden attributes in the presentation object you can sort, group, and hide configurations and compounds in the Debug configuration dropdown and in the Debug quick pick.\" Source: https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes."
      },
      "fqn": "projen.vscode.Presentation",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 32
      },
      "name": "Presentation",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 34
          },
          "name": "group",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 33
          },
          "name": "hidden",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 35
          },
          "name": "order",
          "type": {
            "primitive": "number"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:Presentation"
    },
    "projen.vscode.ServerReadyAction": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "VSCode launch configuration ServerReadyAction interface \"if you want to open a URL in a web browser whenever the program under debugging outputs a specific message to the debug console or integrated terminal.\" Source: https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes."
      },
      "fqn": "projen.vscode.ServerReadyAction",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 43
      },
      "name": "ServerReadyAction",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 44
          },
          "name": "action",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 45
          },
          "name": "pattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 46
          },
          "name": "uriFormat",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:ServerReadyAction"
    },
    "projen.vscode.VsCode": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.vscode.VsCode",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/vscode/vscode.ts",
          "line": 12
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.Project"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/vscode/vscode.ts",
        "line": 7
      },
      "name": "VsCode",
      "namespace": "vscode",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/vscode.ts",
            "line": 32
          },
          "name": "extensions",
          "type": {
            "fqn": "projen.vscode.VsCodeRecommendedExtensions"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/vscode.ts",
            "line": 16
          },
          "name": "launchConfiguration",
          "type": {
            "fqn": "projen.vscode.VsCodeLaunchConfig"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/vscode.ts",
            "line": 24
          },
          "name": "settings",
          "type": {
            "fqn": "projen.vscode.VsCodeSettings"
          }
        }
      ],
      "symbolId": "src/vscode/vscode:VsCode"
    },
    "projen.vscode.VsCodeLaunchCommandInputEntry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for a 'VsCodeLaunchCommandInputEntry' Source: https://code.visualstudio.com/docs/editor/variables-reference#_input-variables."
      },
      "fqn": "projen.vscode.VsCodeLaunchCommandInputEntry",
      "interfaces": [
        "projen.vscode.VsCodeLaunchInputEntry"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 116
      },
      "name": "VsCodeLaunchCommandInputEntry",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 117
          },
          "name": "command",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 118
          },
          "name": "args",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:VsCodeLaunchCommandInputEntry"
    },
    "projen.vscode.VsCodeLaunchConfig": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "VSCode launch configuration file (launch.json), useful for enabling in-editor debugger."
      },
      "fqn": "projen.vscode.VsCodeLaunchConfig",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/vscode/launch-config.ts",
          "line": 145
        },
        "parameters": [
          {
            "name": "vscode",
            "type": {
              "fqn": "projen.vscode.VsCode"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 124
      },
      "methods": [
        {
          "docs": {
            "remarks": "See https://code.visualstudio.com/docs/editor/variables-reference#_input-variables for details.",
            "stability": "experimental",
            "summary": "Adds an input variable with type `command` to `.vscode/launch.json`."
          },
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 205
          },
          "name": "addCommandInput",
          "parameters": [
            {
              "docs": {
                "summary": "VsCodeLaunchCommandInputEntry."
              },
              "name": "cfg",
              "type": {
                "fqn": "projen.vscode.VsCodeLaunchCommandInputEntry"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a VsCodeLaunchConfigurationEntry (e.g. a node.js debugger) to `.vscode/launch.json. Each configuration entry has following mandatory fields: type, request and name. See https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes for details."
          },
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 169
          },
          "name": "addConfiguration",
          "parameters": [
            {
              "docs": {
                "summary": "VsCodeLaunchConfigurationEntry."
              },
              "name": "cfg",
              "type": {
                "fqn": "projen.vscode.VsCodeLaunchConfigurationEntry"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "See https://code.visualstudio.com/docs/editor/variables-reference#_input-variables for details.",
            "stability": "experimental",
            "summary": "Adds an input variable with type `pickString` to `.vscode/launch.json`."
          },
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 192
          },
          "name": "addPickStringInput",
          "parameters": [
            {
              "docs": {
                "summary": "VsCodeLaunchPickStringInputEntry."
              },
              "name": "cfg",
              "type": {
                "fqn": "projen.vscode.VsCodeLaunchPickStringInputEntry"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "See https://code.visualstudio.com/docs/editor/variables-reference#_input-variables for details.",
            "stability": "experimental",
            "summary": "Adds an input variable with type `promptString` to `.vscode/launch.json`."
          },
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 179
          },
          "name": "addPromptStringInput",
          "parameters": [
            {
              "docs": {
                "summary": "VsCodeLaunchPromptStringInputEntry."
              },
              "name": "cfg",
              "type": {
                "fqn": "projen.vscode.VsCodeLaunchPromptStringInputEntry"
              }
            }
          ]
        }
      ],
      "name": "VsCodeLaunchConfig",
      "namespace": "vscode",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 143
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:VsCodeLaunchConfig"
    },
    "projen.vscode.VsCodeLaunchConfigurationEntry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for a 'VsCodeLaunchConfigurationEntry' Source: https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes."
      },
      "fqn": "projen.vscode.VsCodeLaunchConfigurationEntry",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 53
      },
      "name": "VsCodeLaunchConfigurationEntry",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 56
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 55
          },
          "name": "request",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 54
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 57
          },
          "name": "args",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 78
          },
          "name": "console",
          "optional": true,
          "type": {
            "fqn": "projen.vscode.Console"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 75
          },
          "name": "cwd",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 58
          },
          "name": "debugServer",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 79
          },
          "name": "disableOptimisticBPs",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Set value to `false` to unset an existing environment variable."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 73
          },
          "name": "env",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "primitive": "boolean"
                    }
                  ]
                }
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 74
          },
          "name": "envFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 59
          },
          "name": "internalConsoleOptions",
          "optional": true,
          "type": {
            "fqn": "projen.vscode.InternalConsoleOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 67
          },
          "name": "outFiles",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 76
          },
          "name": "port",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 61
          },
          "name": "postDebugTask",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 62
          },
          "name": "preLaunchTask",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 63
          },
          "name": "presentation",
          "optional": true,
          "type": {
            "fqn": "projen.vscode.Presentation"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 64
          },
          "name": "program",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 60
          },
          "name": "runtimeArgs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 65
          },
          "name": "serverReadyAction",
          "optional": true,
          "type": {
            "fqn": "projen.vscode.ServerReadyAction"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 66
          },
          "name": "skipFiles",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 77
          },
          "name": "stopOnEntry",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 68
          },
          "name": "url",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 69
          },
          "name": "webRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:VsCodeLaunchConfigurationEntry"
    },
    "projen.vscode.VsCodeLaunchInputEntry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Base options for a 'VsCodeLaunchInputEntry' Source: https://code.visualstudio.com/docs/editor/variables-reference#_input-variables."
      },
      "fqn": "projen.vscode.VsCodeLaunchInputEntry",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 86
      },
      "name": "VsCodeLaunchInputEntry",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 87
          },
          "name": "id",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:VsCodeLaunchInputEntry"
    },
    "projen.vscode.VsCodeLaunchPickStringInputEntry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for a 'VsCodeLaunchPickStringInputEntry' Source: https://code.visualstudio.com/docs/editor/variables-reference#_input-variables."
      },
      "fqn": "projen.vscode.VsCodeLaunchPickStringInputEntry",
      "interfaces": [
        "projen.vscode.VsCodeLaunchInputEntry"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 105
      },
      "name": "VsCodeLaunchPickStringInputEntry",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 107
          },
          "name": "description",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 109
          },
          "name": "options",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 108
          },
          "name": "default",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:VsCodeLaunchPickStringInputEntry"
    },
    "projen.vscode.VsCodeLaunchPromptStringInputEntry": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for a 'VsCodeLaunchPromptStringInputEntry' Source: https://code.visualstudio.com/docs/editor/variables-reference#_input-variables."
      },
      "fqn": "projen.vscode.VsCodeLaunchPromptStringInputEntry",
      "interfaces": [
        "projen.vscode.VsCodeLaunchInputEntry"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/vscode/launch-config.ts",
        "line": 94
      },
      "name": "VsCodeLaunchPromptStringInputEntry",
      "namespace": "vscode",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 96
          },
          "name": "description",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 97
          },
          "name": "default",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/launch-config.ts",
            "line": 98
          },
          "name": "password",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/vscode/launch-config:VsCodeLaunchPromptStringInputEntry"
    },
    "projen.vscode.VsCodeRecommendedExtensions": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "VS Code Workspace recommended extensions Source: https://code.visualstudio.com/docs/editor/extension-marketplace#_workspace-recommended-extensions."
      },
      "fqn": "projen.vscode.VsCodeRecommendedExtensions",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/vscode/extensions.ts",
          "line": 28
        },
        "parameters": [
          {
            "name": "vscode",
            "type": {
              "fqn": "projen.vscode.VsCode"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/vscode/extensions.ts",
        "line": 9
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a list of VS Code extensions as recommendations for this workspace."
          },
          "locationInModule": {
            "filename": "src/vscode/extensions.ts",
            "line": 46
          },
          "name": "addRecommendations",
          "parameters": [
            {
              "docs": {
                "summary": "The extension IDs."
              },
              "name": "extensions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "remarks": "VS Code should not be recommend these extensions for users of this workspace.",
            "stability": "experimental",
            "summary": "Marks a list of VS Code extensions as unwanted recommendations for this workspace."
          },
          "locationInModule": {
            "filename": "src/vscode/extensions.ts",
            "line": 56
          },
          "name": "addUnwantedRecommendations",
          "parameters": [
            {
              "docs": {
                "summary": "The extension IDs."
              },
              "name": "extensions",
              "type": {
                "primitive": "string"
              },
              "variadic": true
            }
          ],
          "variadic": true
        }
      ],
      "name": "VsCodeRecommendedExtensions",
      "namespace": "vscode",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/extensions.ts",
            "line": 26
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/vscode/extensions:VsCodeRecommendedExtensions"
    },
    "projen.vscode.VsCodeSettings": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental",
        "summary": "VS Code Workspace settings Source: https://code.visualstudio.com/docs/getstarted/settings#_workspace-settings."
      },
      "fqn": "projen.vscode.VsCodeSettings",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/vscode/settings.ts",
          "line": 13
        },
        "parameters": [
          {
            "name": "vscode",
            "type": {
              "fqn": "projen.vscode.VsCode"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/vscode/settings.ts",
        "line": 9
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a workspace setting."
          },
          "locationInModule": {
            "filename": "src/vscode/settings.ts",
            "line": 31
          },
          "name": "addSetting",
          "parameters": [
            {
              "docs": {
                "summary": "The setting ID."
              },
              "name": "setting",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The value of the setting."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            },
            {
              "docs": {
                "summary": "Scope the setting to a specific language."
              },
              "name": "language",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Adds a workspace setting."
          },
          "locationInModule": {
            "filename": "src/vscode/settings.ts",
            "line": 45
          },
          "name": "addSettings",
          "parameters": [
            {
              "docs": {
                "summary": "Array structure: [setting: string, value: any, languages?: string[]]."
              },
              "name": "settings",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            },
            {
              "name": "languages",
              "optional": true,
              "type": {
                "union": {
                  "types": [
                    {
                      "primitive": "string"
                    },
                    {
                      "collection": {
                        "elementtype": {
                          "primitive": "string"
                        },
                        "kind": "array"
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "name": "VsCodeSettings",
      "namespace": "vscode",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/vscode/settings.ts",
            "line": 11
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        }
      ],
      "symbolId": "src/vscode/settings:VsCodeSettings"
    },
    "projen.web.NextComponent": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.NextComponent",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/next.ts",
          "line": 232
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.web.NextComponentOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 228
      },
      "name": "NextComponent",
      "namespace": "web",
      "symbolId": "src/web/next:NextComponent"
    },
    "projen.web.NextComponentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.NextComponentOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 210
      },
      "name": "NextComponentOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "see": "https://tailwindcss.com/docs/installation",
            "stability": "experimental",
            "summary": "Setup Tailwind as a PostCSS plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 225
          },
          "name": "tailwind",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether to apply options specific for TypeScript Next.js projects."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 216
          },
          "name": "typescript",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/web/next:NextComponentOptions"
    },
    "projen.web.NextJsCommonProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.NextJsCommonProjectOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 13
      },
      "name": "NextJsCommonProjectOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"public\"",
            "stability": "experimental",
            "summary": "Assets directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 19
          },
          "name": "assetsdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "featured": "true"
            },
            "default": "true",
            "see": "https://tailwindcss.com/docs/installation",
            "stability": "experimental",
            "summary": "Setup Tailwind CSS as a PostCSS plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 29
          },
          "name": "tailwind",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/web/next:NextJsCommonProjectOptions"
    },
    "projen.web.NextJsProject": {
      "assembly": "projen",
      "base": "projen.javascript.NodeProject",
      "docs": {
        "custom": {
          "pjid": "nextjs"
        },
        "stability": "experimental",
        "summary": "Next.js project using JavaScript."
      },
      "fqn": "projen.web.NextJsProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/next.ts",
          "line": 78
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.web.NextJsProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 60
      },
      "name": "NextJsProject",
      "namespace": "web",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which app assets reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 69
          },
          "name": "assetsdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which source files reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 64
          },
          "name": "srcdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "https://tailwindcss.com/docs/installation",
            "stability": "experimental",
            "summary": "Setup Tailwind as a PostCSS plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 76
          },
          "name": "tailwind",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/web/next:NextJsProject"
    },
    "projen.web.NextJsProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.NextJsProjectOptions",
      "interfaces": [
        "projen.web.NextJsCommonProjectOptions",
        "projen.javascript.NodeProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 36
      },
      "name": "NextJsProjectOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Generate one-time sample in `pages/` and `public/` if there are no files there."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 50
          },
          "name": "sampleCode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"src\"",
            "stability": "experimental",
            "summary": "Typescript sources directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 44
          },
          "name": "srcdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/web/next:NextJsProjectOptions"
    },
    "projen.web.NextJsTypeScriptProject": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptAppProject",
      "docs": {
        "custom": {
          "pjid": "nextjs-ts"
        },
        "stability": "experimental",
        "summary": "Next.js project using TypeScript."
      },
      "fqn": "projen.web.NextJsTypeScriptProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/next.ts",
          "line": 127
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.web.NextJsTypeScriptProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 109
      },
      "name": "NextJsTypeScriptProject",
      "namespace": "web",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which app assets reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 118
          },
          "name": "assetsdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which source files reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 113
          },
          "name": "srcdir",
          "overrides": "projen.typescript.TypeScriptProject",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "https://tailwindcss.com/docs/installation",
            "stability": "experimental",
            "summary": "Setup Tailwind as a PostCSS plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/next.ts",
            "line": 125
          },
          "name": "tailwind",
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/web/next:NextJsTypeScriptProject"
    },
    "projen.web.NextJsTypeScriptProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.NextJsTypeScriptProjectOptions",
      "interfaces": [
        "projen.web.NextJsCommonProjectOptions",
        "projen.typescript.TypeScriptProjectOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/next.ts",
        "line": 32
      },
      "name": "NextJsTypeScriptProjectOptions",
      "namespace": "web",
      "symbolId": "src/web/next:NextJsTypeScriptProjectOptions"
    },
    "projen.web.PostCss": {
      "assembly": "projen",
      "docs": {
        "stability": "experimental",
        "summary": "Declares a PostCSS dependency with a default config file."
      },
      "fqn": "projen.web.PostCss",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/postcss.ts",
          "line": 32
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.web.PostCssOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/postcss.ts",
        "line": 27
      },
      "name": "PostCss",
      "namespace": "web",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/postcss.ts",
            "line": 29
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/postcss.ts",
            "line": 28
          },
          "name": "fileName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/postcss.ts",
            "line": 30
          },
          "name": "tailwind",
          "optional": true,
          "type": {
            "fqn": "projen.web.TailwindConfig"
          }
        }
      ],
      "symbolId": "src/web/postcss:PostCss"
    },
    "projen.web.PostCssOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.PostCssOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/postcss.ts",
        "line": 5
      },
      "name": "PostCssOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"postcss.config.json\"",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/postcss.ts",
            "line": 9
          },
          "name": "fileName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Install Tailwind CSS as a PostCSS plugin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/postcss.ts",
            "line": 16
          },
          "name": "tailwind",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Tailwind CSS options."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/postcss.ts",
            "line": 21
          },
          "name": "tailwindOptions",
          "optional": true,
          "type": {
            "fqn": "projen.web.TailwindConfigOptions"
          }
        }
      ],
      "symbolId": "src/web/postcss:PostCssOptions"
    },
    "projen.web.ReactComponent": {
      "assembly": "projen",
      "base": "projen.Component",
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.ReactComponent",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/react.ts",
          "line": 200
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "type": {
              "fqn": "projen.web.ReactComponentOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 197
      },
      "name": "ReactComponent",
      "namespace": "web",
      "symbolId": "src/web/react:ReactComponent"
    },
    "projen.web.ReactComponentOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.ReactComponentOptions",
      "interfaces": [
        "projen.web.ReactRewireOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 188
      },
      "name": "ReactComponentOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Whether to apply options specific for TypeScript React projects."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 194
          },
          "name": "typescript",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ],
      "symbolId": "src/web/react:ReactComponentOptions"
    },
    "projen.web.ReactProject": {
      "assembly": "projen",
      "base": "projen.javascript.NodeProject",
      "docs": {
        "custom": {
          "pjid": "react"
        },
        "stability": "experimental",
        "summary": "React project using JavaScript."
      },
      "fqn": "projen.web.ReactProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/react.ts",
          "line": 83
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.web.ReactProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 76
      },
      "name": "ReactProject",
      "namespace": "web",
      "properties": [
        {
          "docs": {
            "default": "\"src\"",
            "stability": "experimental",
            "summary": "The directory in which source files reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 81
          },
          "name": "srcdir",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/web/react:ReactProject"
    },
    "projen.web.ReactProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.ReactProjectOptions",
      "interfaces": [
        "projen.javascript.NodeProjectOptions",
        "projen.web.ReactRewireOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 55
      },
      "name": "ReactProjectOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Generate one-time sample in `src/` and `public/` if there are no files there."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 68
          },
          "name": "sampleCode",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "\"src\"",
            "stability": "experimental",
            "summary": "Source directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 63
          },
          "name": "srcdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/web/react:ReactProjectOptions"
    },
    "projen.web.ReactRewireOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.ReactRewireOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 15
      },
      "name": "ReactRewireOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No rewired config.",
            "remarks": "Use this property to override webpack configuration properties provided\nby create-react-app, without needing to eject.\n\nThis property will create a `config-overrides.js` file in your root directory,\nwhich will contain the desired rewiring code.\n\nTo **override** the configuration, you can provide simple key value pairs.\nKeys take the form of js code directives that traverse to the desired property.\nValues should be JSON serializable objects.\n\nFor example, the following config:\n\n```json\nrewire: { \"module.unknownContextCritical\": false }\n```\n\nWill translate to the following `config-overrides.js` file:\n\n```js\nmodule.exports = function override(config, env) {\n  config.module.unknownContextCritical = false;\n}\n```",
            "see": "https://github.com/timarney/react-app-rewired",
            "stability": "experimental",
            "summary": "Rewire webpack configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 48
          },
          "name": "rewire",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ],
      "symbolId": "src/web/react:ReactRewireOptions"
    },
    "projen.web.ReactTypeDef": {
      "assembly": "projen",
      "base": "projen.FileBase",
      "docs": {
        "deprecated": "No longer used.",
        "stability": "deprecated"
      },
      "fqn": "projen.web.ReactTypeDef",
      "initializer": {
        "docs": {
          "stability": "deprecated"
        },
        "locationInModule": {
          "filename": "src/web/react.ts",
          "line": 495
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.web.ReactTypeScriptProject"
            }
          },
          {
            "name": "filePath",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.web.ReactTypeDefOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 494
      },
      "methods": [
        {
          "docs": {
            "stability": "deprecated",
            "summary": "Implemented by derived classes and returns the contents of the file to emit."
          },
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 503
          },
          "name": "synthesizeContent",
          "overrides": "projen.FileBase",
          "parameters": [
            {
              "name": "_",
              "type": {
                "fqn": "projen.IResolver"
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "ReactTypeDef",
      "namespace": "web",
      "symbolId": "src/web/react:ReactTypeDef"
    },
    "projen.web.ReactTypeDefOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "deprecated": "No longer used.",
        "stability": "deprecated"
      },
      "fqn": "projen.web.ReactTypeDefOptions",
      "interfaces": [
        "projen.FileBaseOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 489
      },
      "name": "ReactTypeDefOptions",
      "namespace": "web",
      "symbolId": "src/web/react:ReactTypeDefOptions"
    },
    "projen.web.ReactTypeScriptProject": {
      "assembly": "projen",
      "base": "projen.typescript.TypeScriptAppProject",
      "docs": {
        "custom": {
          "pjid": "react-ts"
        },
        "stability": "experimental",
        "summary": "React project using TypeScript."
      },
      "fqn": "projen.web.ReactTypeScriptProject",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/react.ts",
          "line": 117
        },
        "parameters": [
          {
            "name": "options",
            "type": {
              "fqn": "projen.web.ReactTypeScriptProjectOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 111
      },
      "name": "ReactTypeScriptProject",
      "namespace": "web",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The directory in which source files reside."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/react.ts",
            "line": 115
          },
          "name": "srcdir",
          "overrides": "projen.typescript.TypeScriptProject",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/web/react:ReactTypeScriptProject"
    },
    "projen.web.ReactTypeScriptProjectOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.ReactTypeScriptProjectOptions",
      "interfaces": [
        "projen.typescript.TypeScriptProjectOptions",
        "projen.web.ReactRewireOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/react.ts",
        "line": 51
      },
      "name": "ReactTypeScriptProjectOptions",
      "namespace": "web",
      "symbolId": "src/web/react:ReactTypeScriptProjectOptions"
    },
    "projen.web.TailwindConfig": {
      "assembly": "projen",
      "docs": {
        "remarks": "There are multiple ways to add Tailwind CSS in your node project - see:\nhttps://tailwindcss.com/docs/installation",
        "see": "PostCss",
        "stability": "experimental",
        "summary": "Declares a Tailwind CSS configuration file."
      },
      "fqn": "projen.web.TailwindConfig",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/web/tailwind.ts",
          "line": 23
        },
        "parameters": [
          {
            "name": "project",
            "type": {
              "fqn": "projen.javascript.NodeProject"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "projen.web.TailwindConfigOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "src/web/tailwind.ts",
        "line": 19
      },
      "name": "TailwindConfig",
      "namespace": "web",
      "properties": [
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/tailwind.ts",
            "line": 21
          },
          "name": "file",
          "type": {
            "fqn": "projen.JsonFile"
          }
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/tailwind.ts",
            "line": 20
          },
          "name": "fileName",
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/web/tailwind:TailwindConfig"
    },
    "projen.web.TailwindConfigOptions": {
      "assembly": "projen",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "projen.web.TailwindConfigOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/web/tailwind.ts",
        "line": 4
      },
      "name": "TailwindConfigOptions",
      "namespace": "web",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"tailwind.config.json\"",
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/web/tailwind.ts",
            "line": 8
          },
          "name": "fileName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/web/tailwind:TailwindConfigOptions"
    }
  },
  "version": "0.91.20",
  "fingerprint": "T90bR4Gm08Bz5FSZR7hwt6WfeblFP5sW+uKP6TxiohE="
}