projen 0.31.19 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/.jsii +783 -203
  2. package/API.md +331 -18
  3. package/README.md +1 -0
  4. package/lib/awscdk/cdk-config.d.ts +103 -0
  5. package/lib/awscdk/cdk-config.js +56 -0
  6. package/lib/awscdk/cdk-tasks.d.ts +38 -0
  7. package/lib/awscdk/cdk-tasks.js +39 -0
  8. package/lib/awscdk/index.d.ts +3 -0
  9. package/lib/awscdk/index.js +16 -0
  10. package/lib/awscdk/internal.d.ts +4 -0
  11. package/lib/awscdk/internal.js +22 -0
  12. package/lib/awscdk/java-app.d.ts +92 -0
  13. package/lib/awscdk/java-app.js +90 -0
  14. package/lib/awscdk-app-ts.d.ts +13 -45
  15. package/lib/awscdk-app-ts.js +12 -45
  16. package/lib/awscdk-construct.js +2 -2
  17. package/lib/cdk8s-app-ts.js +1 -1
  18. package/lib/cdk8s-construct.js +1 -1
  19. package/lib/cdktf-construct.js +1 -1
  20. package/lib/common.js +6 -2
  21. package/lib/component.js +1 -1
  22. package/lib/construct-lib.js +1 -1
  23. package/lib/deps/dependencies.js +1 -1
  24. package/lib/dev-env.js +1 -1
  25. package/lib/docker-compose.js +2 -2
  26. package/lib/eslint.d.ts +9 -0
  27. package/lib/eslint.js +3 -2
  28. package/lib/file.js +1 -1
  29. package/lib/git/gitattributes.js +1 -1
  30. package/lib/github/auto-approve.js +1 -1
  31. package/lib/github/auto-merge.js +1 -1
  32. package/lib/github/dependabot.js +1 -1
  33. package/lib/github/github.js +1 -1
  34. package/lib/github/mergify.js +1 -1
  35. package/lib/github/pr-template.js +1 -1
  36. package/lib/github/stale.js +1 -1
  37. package/lib/github/task-workflow.js +1 -1
  38. package/lib/github/workflows.js +1 -1
  39. package/lib/gitpod.js +1 -1
  40. package/lib/ignore-file.js +1 -1
  41. package/lib/index.d.ts +1 -0
  42. package/lib/index.js +2 -1
  43. package/lib/ini.js +1 -1
  44. package/lib/java/java-project.d.ts +28 -14
  45. package/lib/java/java-project.js +3 -2
  46. package/lib/java/junit.js +1 -1
  47. package/lib/java/maven-compile.js +1 -1
  48. package/lib/java/maven-packaging.js +1 -1
  49. package/lib/java/maven-sample.js +1 -1
  50. package/lib/java/pom.js +1 -1
  51. package/lib/java/projenrc.js +1 -1
  52. package/lib/javascript/npm-config.js +1 -1
  53. package/lib/javascript/projenrc.js +1 -1
  54. package/lib/jest.js +1 -1
  55. package/lib/jsii-project.js +1 -1
  56. package/lib/json/projenrc.js +1 -1
  57. package/lib/json.js +1 -1
  58. package/lib/license.js +1 -1
  59. package/lib/logger.js +1 -1
  60. package/lib/makefile.js +1 -1
  61. package/lib/node-package.js +1 -1
  62. package/lib/node-project.js +1 -1
  63. package/lib/object-file.js +1 -1
  64. package/lib/project.js +2 -2
  65. package/lib/projects.js +1 -1
  66. package/lib/python/pip.js +1 -1
  67. package/lib/python/poetry.js +2 -2
  68. package/lib/python/projenrc.js +1 -1
  69. package/lib/python/pytest.js +1 -1
  70. package/lib/python/python-project.js +1 -1
  71. package/lib/python/python-sample.js +1 -1
  72. package/lib/python/requirements-file.js +1 -1
  73. package/lib/python/setuppy.js +1 -1
  74. package/lib/python/setuptools.js +1 -1
  75. package/lib/python/venv.js +1 -1
  76. package/lib/readme.js +1 -1
  77. package/lib/release/publisher.js +1 -1
  78. package/lib/release/release-trigger.js +1 -1
  79. package/lib/release/release.js +1 -1
  80. package/lib/sample-file.js +2 -2
  81. package/lib/semver.js +1 -1
  82. package/lib/source-code.js +1 -1
  83. package/lib/tasks/runtime.js +1 -1
  84. package/lib/tasks/task.js +1 -1
  85. package/lib/tasks/tasks.js +1 -1
  86. package/lib/textfile.js +1 -1
  87. package/lib/toml.js +1 -1
  88. package/lib/typescript/projenrc.js +1 -1
  89. package/lib/typescript-config.js +1 -1
  90. package/lib/typescript.js +3 -3
  91. package/lib/upgrade-dependencies.js +2 -2
  92. package/lib/version.js +1 -1
  93. package/lib/vscode/devcontainer.js +1 -1
  94. package/lib/vscode/launch-config.js +1 -1
  95. package/lib/vscode/vscode.js +1 -1
  96. package/lib/web/next.js +3 -3
  97. package/lib/web/postcss.js +1 -1
  98. package/lib/web/react.js +4 -4
  99. package/lib/web/tailwind.js +1 -1
  100. package/lib/xmlfile.js +1 -1
  101. package/lib/yaml.js +1 -1
  102. package/package.json +2 -2
package/API.md CHANGED
@@ -48,6 +48,9 @@ Name|Description
48
48
  [Version](#projen-version)|*No description*
49
49
  [XmlFile](#projen-xmlfile)|Represents an XML file.
50
50
  [YamlFile](#projen-yamlfile)|Represents a YAML file.
51
+ [awscdk.AwsCdkJavaApp](#projen-awscdk-awscdkjavaapp)|AWS CDK app in Java.
52
+ [awscdk.CdkConfig](#projen-awscdk-cdkconfig)|Represents cdk.json file.
53
+ [awscdk.CdkTasks](#projen-awscdk-cdktasks)|Adds standard AWS CDK tasks to your project.
51
54
  [deps.Dependencies](#projen-deps-dependencies)|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.
52
55
  [git.GitAttributesFile](#projen-git-gitattributesfile)|Assign attributes to file names in a git repository.
53
56
  [github.AutoApprove](#projen-github-autoapprove)|Auto approve pull requests that meet a criteria.
@@ -168,6 +171,9 @@ Name|Description
168
171
  [VersionOptions](#projen-versionoptions)|Options for `Version`.
169
172
  [XmlFileOptions](#projen-xmlfileoptions)|Options for `XmlFile`.
170
173
  [YamlFileOptions](#projen-yamlfileoptions)|Options for `JsonFile`.
174
+ [awscdk.AwsCdkJavaAppOptions](#projen-awscdk-awscdkjavaappoptions)|*No description*
175
+ [awscdk.CdkConfigCommonOptions](#projen-awscdk-cdkconfigcommonoptions)|Common options for `cdk.json`.
176
+ [awscdk.CdkConfigOptions](#projen-awscdk-cdkconfigoptions)|Options for `CdkJson`.
171
177
  [deps.Dependency](#projen-deps-dependency)|Represents a project dependency.
172
178
  [deps.DependencyCoordinates](#projen-deps-dependencycoordinates)|Coordinates of the dependency (name and version).
173
179
  [deps.DepsManifest](#projen-deps-depsmanifest)|*No description*
@@ -186,6 +192,7 @@ Name|Description
186
192
  [github.StaleBehavior](#projen-github-stalebehavior)|Stale behavior.
187
193
  [github.StaleOptions](#projen-github-staleoptions)|Options for `Stale`.
188
194
  [github.TaskWorkflowOptions](#projen-github-taskworkflowoptions)|*No description*
195
+ [java.JavaProjectCommonOptions](#projen-java-javaprojectcommonoptions)|Options for `JavaProject`.
189
196
  [java.JavaProjectOptions](#projen-java-javaprojectoptions)|Options for `JavaProject`.
190
197
  [java.JunitOptions](#projen-java-junitoptions)|Options for `Junit`.
191
198
  [java.MavenCompileOptions](#projen-java-mavencompileoptions)|Options for `MavenCompile`.
@@ -271,7 +278,6 @@ Name|Description
271
278
  Name|Description
272
279
  ----|-----------
273
280
  [AutoRelease](#projen-autorelease)|Automatic bump modes.
274
- [CdkApprovalLevel](#projen-cdkapprovallevel)|*No description*
275
281
  [DockerComposeProtocol](#projen-dockercomposeprotocol)|Network protocol for port mapping.
276
282
  [GitpodOnOpen](#projen-gitpodonopen)|What to do when a service on a port is detected.
277
283
  [GitpodOpenIn](#projen-gitpodopenin)|Configure where in the IDE the terminal should be opened.
@@ -285,6 +291,7 @@ Name|Description
285
291
  [Stability](#projen-stability)|*No description*
286
292
  [TypeScriptJsxMode](#projen-typescriptjsxmode)|Determines how JSX should get transformed into valid JavaScript.
287
293
  [TypeScriptModuleResolution](#projen-typescriptmoduleresolution)|Determines how modules get resolved.
294
+ [awscdk.ApprovalLevel](#projen-awscdk-approvallevel)|Which approval is required when deploying CDK apps.
288
295
  [deps.DependencyType](#projen-deps-dependencytype)|Type of dependency.
289
296
  [github.DependabotRegistryType](#projen-github-dependabotregistrytype)|Each configuration type requires you to provide particular settings.
290
297
  [github.DependabotScheduleInterval](#projen-github-dependabotscheduleinterval)|How often to check for new versions and raise pull requests for version updates.
@@ -699,12 +706,14 @@ new AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions)
699
706
  * **tsconfigDev** (<code>[TypescriptConfigOptions](#projen-typescriptconfigoptions)</code>) Custom tsconfig options for the development tsconfig.json file (used for testing). __*Default*__: use the production tsconfig options
700
707
  * **tsconfigDevFile** (<code>string</code>) The name of the development tsconfig.json file. __*Default*__: "tsconfig.dev.json"
701
708
  * **typescriptVersion** (<code>string</code>) TypeScript version to use. __*Default*__: "latest"
709
+ * **cdkout** (<code>string</code>) cdk.out directory. __*Default*__: "cdk.out"
710
+ * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Default*__: no additional context
711
+ * **featureFlags** (<code>boolean</code>) Include all feature flags in cdk.json. __*Default*__: true
712
+ * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) 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. __*Default*__: ApprovalLevel.BROADENING
702
713
  * **cdkVersion** (<code>string</code>) AWS CDK version to use.
703
714
  * **appEntrypoint** (<code>string</code>) The CDK app's entrypoint (relative to the source directory, which is "src" by default). __*Default*__: "main.ts"
704
715
  * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") this app uses. __*Optional*__
705
716
  * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Default*__: false
706
- * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Optional*__
707
- * **requireApproval** (<code>[CdkApprovalLevel](#projen-cdkapprovallevel)</code>) 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. __*Default*__: CdkApprovalLevel.BROADENING
708
717
 
709
718
 
710
719
 
@@ -714,7 +723,8 @@ new AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions)
714
723
  Name | Type | Description
715
724
  -----|------|-------------
716
725
  **appEntrypoint**🔹 | <code>string</code> | The CDK app entrypoint.
717
- **cdkConfig**🔹 | <code>any</code> | Contents of `cdk.json`.
726
+ **cdkConfig**🔹 | <code>[awscdk.CdkConfig](#projen-awscdk-cdkconfig)</code> | cdk.json configuration.
727
+ **cdkTasks**🔹 | <code>[awscdk.CdkTasks](#projen-awscdk-cdktasks)</code> | Common CDK tasks.
718
728
  **cdkVersion**🔹 | <code>string</code> | The CDK version this app is using.
719
729
 
720
730
  ### Methods
@@ -1899,6 +1909,7 @@ new Eslint(project: NodeProject, options: EslintOptions)
1899
1909
  * **ignorePatterns** (<code>Array<string></code>) List of file patterns that should not be linted, using the same syntax as .gitignore patterns. __*Default*__: [ '*.js', '*.d.ts', 'node_modules/', '*.generated.ts', 'coverage' ]
1900
1910
  * **lintProjenRc** (<code>boolean</code>) Should we lint .projenrc.js. __*Default*__: true
1901
1911
  * **prettier** (<code>boolean</code>) Enable prettier for code formatting. __*Default*__: false
1912
+ * **tsAlwaysTryTypes** (<code>boolean</code>) Always try to resolve types under `<root>@types` directory even it doesn't contain any source code. __*Default*__: true
1902
1913
  * **tsconfigPath** (<code>string</code>) Path to `tsconfig.json` which should be used by eslint. __*Default*__: "./tsconfig.json"
1903
1914
 
1904
1915
 
@@ -5114,6 +5125,170 @@ __Returns__:
5114
5125
 
5115
5126
 
5116
5127
 
5128
+ ## class AwsCdkJavaApp 🔹 <a id="projen-awscdk-awscdkjavaapp"></a>
5129
+
5130
+ AWS CDK app in Java.
5131
+
5132
+ __Submodule__: awscdk
5133
+
5134
+ __Extends__: [java.JavaProject](#projen-java-javaproject)
5135
+
5136
+ ### Initializer
5137
+
5138
+
5139
+
5140
+
5141
+ ```ts
5142
+ new awscdk.AwsCdkJavaApp(options: AwsCdkJavaAppOptions)
5143
+ ```
5144
+
5145
+ * **options** (<code>[awscdk.AwsCdkJavaAppOptions](#projen-awscdk-awscdkjavaappoptions)</code>) *No description*
5146
+ * **name** (<code>string</code>) This is the name of your project.
5147
+ * **logging** (<code>[LoggerOptions](#projen-loggeroptions)</code>) Configure logging options such as verbosity. __*Default*__: {}
5148
+ * **outdir** (<code>string</code>) The root directory of the project. __*Default*__: "."
5149
+ * **parent** (<code>[Project](#projen-project)</code>) The parent project, if this project is part of a bigger project. __*Optional*__
5150
+ * **projenrcJson** (<code>boolean</code>) Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. __*Default*__: false
5151
+ * **projenrcJsonOptions** (<code>[json.ProjenrcOptions](#projen-json-projenrcoptions)</code>) Options for .projenrc.json. __*Default*__: default options
5152
+ * **autoApproveOptions** (<code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code>) Enable and configure the 'auto approve' workflow. __*Default*__: auto approve is disabled
5153
+ * **autoMergeOptions** (<code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code>) Configure options for automatic merging on GitHub. __*Default*__: see defaults in `AutoMergeOptions`
5154
+ * **clobber** (<code>boolean</code>) Add a `clobber` task which resets the repo to origin. __*Default*__: true
5155
+ * **devContainer** (<code>boolean</code>) Add a VSCode development environment (used for GitHub Codespaces). __*Default*__: false
5156
+ * **github** (<code>boolean</code>) Enable GitHub integration. __*Default*__: true
5157
+ * **githubOptions** (<code>[github.GitHubOptions](#projen-github-githuboptions)</code>) Options for GitHub integration. __*Default*__: see GitHubOptions
5158
+ * **gitpod** (<code>boolean</code>) Add a Gitpod development environment. __*Default*__: false
5159
+ * **mergify** (<code>boolean</code>) Whether mergify should be enabled on this repository or not. __*Default*__: true
5160
+ * **projectType** (<code>[ProjectType](#projen-projecttype)</code>) Which type of project this is (library/app). __*Default*__: ProjectType.UNKNOWN
5161
+ * **readme** (<code>[SampleReadmeProps](#projen-samplereadmeprops)</code>) The README setup. __*Default*__: { filename: 'README.md', contents: '# replace this' }
5162
+ * **stale** (<code>boolean</code>) Auto-close of stale issues and pull request. __*Default*__: true
5163
+ * **staleOptions** (<code>[github.StaleOptions](#projen-github-staleoptions)</code>) Auto-close stale issues and pull requests. __*Default*__: see defaults in `StaleOptions`
5164
+ * **vscode** (<code>boolean</code>) Enable VSCode integration. __*Default*__: true
5165
+ * **artifactId** (<code>string</code>) The artifactId is generally the name that the project is known by.
5166
+ * **groupId** (<code>string</code>) This is generally unique amongst an organization or a project.
5167
+ * **version** (<code>string</code>) This is the last piece of the naming puzzle.
5168
+ * **description** (<code>string</code>) Description of a project is always good. __*Default*__: undefined
5169
+ * **packaging** (<code>string</code>) Project packaging format. __*Default*__: "jar"
5170
+ * **url** (<code>string</code>) The URL, like the name, is not required. __*Default*__: undefined
5171
+ * **compileOptions** (<code>[java.MavenCompileOptions](#projen-java-mavencompileoptions)</code>) Compile options. __*Default*__: defaults
5172
+ * **deps** (<code>Array<string></code>) List of runtime dependencies for this project. __*Default*__: []
5173
+ * **distdir** (<code>string</code>) Final artifact output directory. __*Default*__: "dist/java"
5174
+ * **junit** (<code>boolean</code>) Include junit tests. __*Default*__: true
5175
+ * **junitOptions** (<code>[java.JunitOptions](#projen-java-junitoptions)</code>) junit options. __*Default*__: defaults
5176
+ * **packagingOptions** (<code>[java.MavenPackagingOptions](#projen-java-mavenpackagingoptions)</code>) Packaging options. __*Default*__: defaults
5177
+ * **projenrcJava** (<code>boolean</code>) Use projenrc in java. __*Default*__: true
5178
+ * **projenrcJavaOptions** (<code>[java.ProjenrcOptions](#projen-java-projenrcoptions)</code>) Options related to projenrc in java. __*Default*__: default options
5179
+ * **testDeps** (<code>Array<string></code>) List of test dependencies for this project. __*Default*__: []
5180
+ * **sample** (<code>boolean</code>) Include sample code and test if the relevant directories don't exist. __*Optional*__
5181
+ * **sampleJavaPackage** (<code>string</code>) The java package to use for the code sample. __*Default*__: "org.acme"
5182
+ * **cdkout** (<code>string</code>) cdk.out directory. __*Default*__: "cdk.out"
5183
+ * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Default*__: no additional context
5184
+ * **featureFlags** (<code>boolean</code>) Include all feature flags in cdk.json. __*Default*__: true
5185
+ * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) 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. __*Default*__: ApprovalLevel.BROADENING
5186
+ * **cdkVersion** (<code>string</code>) AWS CDK version to use (you can use semantic versioning).
5187
+ * **mainClass** (<code>string</code>) The name of the Java class with the static `main()` method.
5188
+ * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules this app uses. __*Optional*__
5189
+
5190
+
5191
+
5192
+ ### Properties
5193
+
5194
+
5195
+ Name | Type | Description
5196
+ -----|------|-------------
5197
+ **cdkConfig**🔹 | <code>[awscdk.CdkConfig](#projen-awscdk-cdkconfig)</code> | The `cdk.json` file.
5198
+ **cdkTasks**🔹 | <code>[awscdk.CdkTasks](#projen-awscdk-cdktasks)</code> | CDK tasks.
5199
+ **cdkVersion**🔹 | <code>string</code> | The CDK version this app is using.
5200
+ **mainClass**🔹 | <code>string</code> | The full name of the main class of the java app (package.Class).
5201
+ **mainClassName**🔹 | <code>string</code> | The name of the Java class with the static `main()` method.
5202
+ **mainPackage**🔹 | <code>string</code> | The name of the Java package that includes the main class.
5203
+
5204
+ ### Methods
5205
+
5206
+
5207
+ #### addCdkDependency(...modules)🔹 <a id="projen-awscdk-awscdkjavaapp-addcdkdependency"></a>
5208
+
5209
+ Adds an AWS CDK module dependencies.
5210
+
5211
+ ```ts
5212
+ addCdkDependency(...modules: string[]): void
5213
+ ```
5214
+
5215
+ * **modules** (<code>string</code>) The list of modules to depend on (e.g. "core", "aws-lambda", etc).
5216
+
5217
+
5218
+
5219
+
5220
+
5221
+
5222
+ ## class CdkConfig 🔹 <a id="projen-awscdk-cdkconfig"></a>
5223
+
5224
+ Represents cdk.json file.
5225
+
5226
+ __Submodule__: awscdk
5227
+
5228
+ __Extends__: [Component](#projen-component)
5229
+
5230
+ ### Initializer
5231
+
5232
+
5233
+
5234
+
5235
+ ```ts
5236
+ new awscdk.CdkConfig(project: Project, options: CdkConfigOptions)
5237
+ ```
5238
+
5239
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5240
+ * **options** (<code>[awscdk.CdkConfigOptions](#projen-awscdk-cdkconfigoptions)</code>) *No description*
5241
+ * **cdkout** (<code>string</code>) cdk.out directory. __*Default*__: "cdk.out"
5242
+ * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Default*__: no additional context
5243
+ * **featureFlags** (<code>boolean</code>) Include all feature flags in cdk.json. __*Default*__: true
5244
+ * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) 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. __*Default*__: ApprovalLevel.BROADENING
5245
+ * **app** (<code>string</code>) The command line to execute in order to synthesize the CDK application (language specific).
5246
+
5247
+
5248
+
5249
+ ### Properties
5250
+
5251
+
5252
+ Name | Type | Description
5253
+ -----|------|-------------
5254
+ **cdkout**🔹 | <code>string</code> | Name of the cdk.out directory.
5255
+ **json**🔹 | <code>[JsonFile](#projen-jsonfile)</code> | Represents the JSON file.
5256
+
5257
+
5258
+
5259
+ ## class CdkTasks 🔹 <a id="projen-awscdk-cdktasks"></a>
5260
+
5261
+ Adds standard AWS CDK tasks to your project.
5262
+
5263
+ __Submodule__: awscdk
5264
+
5265
+ __Extends__: [Component](#projen-component)
5266
+
5267
+ ### Initializer
5268
+
5269
+
5270
+
5271
+
5272
+ ```ts
5273
+ new awscdk.CdkTasks(project: Project)
5274
+ ```
5275
+
5276
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5277
+
5278
+
5279
+
5280
+ ### Properties
5281
+
5282
+
5283
+ Name | Type | Description
5284
+ -----|------|-------------
5285
+ **deploy**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Deploys your app.
5286
+ **destroy**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Destroys all the stacks.
5287
+ **diff**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Diff against production.
5288
+ **synth**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Synthesizes your app.
5289
+
5290
+
5291
+
5117
5292
  ## class Dependencies 🔹 <a id="projen-deps-dependencies"></a>
5118
5293
 
5119
5294
  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.
@@ -5780,9 +5955,9 @@ new java.JavaProject(options: JavaProjectOptions)
5780
5955
  * **packagingOptions** (<code>[java.MavenPackagingOptions](#projen-java-mavenpackagingoptions)</code>) Packaging options. __*Default*__: defaults
5781
5956
  * **projenrcJava** (<code>boolean</code>) Use projenrc in java. __*Default*__: true
5782
5957
  * **projenrcJavaOptions** (<code>[java.ProjenrcOptions](#projen-java-projenrcoptions)</code>) Options related to projenrc in java. __*Default*__: default options
5958
+ * **testDeps** (<code>Array<string></code>) List of test dependencies for this project. __*Default*__: []
5783
5959
  * **sample** (<code>boolean</code>) Include sample code and test if the relevant directories don't exist. __*Optional*__
5784
5960
  * **sampleJavaPackage** (<code>string</code>) The java package to use for the code sample. __*Default*__: "org.acme"
5785
- * **testDeps** (<code>Array<string></code>) List of test dependencies for this project. __*Default*__: []
5786
5961
 
5787
5962
 
5788
5963
 
@@ -5791,6 +5966,7 @@ new java.JavaProject(options: JavaProjectOptions)
5791
5966
 
5792
5967
  Name | Type | Description
5793
5968
  -----|------|-------------
5969
+ **buildTask**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | The primary build task.
5794
5970
  **compile**🔹 | <code>[java.MavenCompile](#projen-java-mavencompile)</code> | Compile component.
5795
5971
  **distdir**🔹 | <code>string</code> | Maven artifact output directory.
5796
5972
  **packaging**🔹 | <code>[java.MavenPackaging](#projen-java-mavenpackaging)</code> | Packaging component.
@@ -8694,11 +8870,12 @@ Name | Type | Description
8694
8870
  **bundledDeps**?🔹 | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
8695
8871
  **cdkDependencies**?🔹 | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") this app uses.<br/>__*Optional*__
8696
8872
  **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Default*__: false
8873
+ **cdkout**?🔹 | <code>string</code> | cdk.out directory.<br/>__*Default*__: "cdk.out"
8697
8874
  **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
8698
8875
  **codeCov**?🔹 | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret.<br/>__*Default*__: false
8699
8876
  **codeCovTokenSecret**?🔹 | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.<br/>__*Default*__: if this option is not specified, only public repositories are supported
8700
8877
  **compileBeforeTest**?🔹 | <code>boolean</code> | Compile the code before running tests.<br/>__*Default*__: if `testdir` is under `src/**`, the default is `true`, otherwise the default is `false`.
8701
- **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Optional*__
8878
+ **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
8702
8879
  **copyrightOwner**?🔹 | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
8703
8880
  **copyrightPeriod**?🔹 | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
8704
8881
  **dependabot**?🔹 | <code>boolean</code> | Use dependabot to handle dependency upgrades.<br/>__*Default*__: false
@@ -8716,6 +8893,7 @@ Name | Type | Description
8716
8893
  **entrypointTypes**?🔹 | <code>string</code> | The .d.ts file that includes the type declarations for this module.<br/>__*Default*__: .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
8717
8894
  **eslint**?🔹 | <code>boolean</code> | Setup eslint.<br/>__*Default*__: true
8718
8895
  **eslintOptions**?🔹 | <code>[EslintOptions](#projen-eslintoptions)</code> | Eslint options.<br/>__*Default*__: opinionated default options
8896
+ **featureFlags**?🔹 | <code>boolean</code> | Include all feature flags in cdk.json.<br/>__*Default*__: true
8719
8897
  **github**?🔹 | <code>boolean</code> | Enable GitHub integration.<br/>__*Default*__: true
8720
8898
  **githubOptions**?🔹 | <code>[github.GitHubOptions](#projen-github-githuboptions)</code> | Options for GitHub integration.<br/>__*Default*__: see GitHubOptions
8721
8899
  **gitignore**?🔹 | <code>Array<string></code> | Additional entries to .gitignore.<br/>__*Optional*__
@@ -8782,7 +8960,7 @@ Name | Type | Description
8782
8960
  **releaseWorkflowSetupSteps**?🔹 | <code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code> | A set of workflow steps to execute in order to setup the workflow container.<br/>__*Optional*__
8783
8961
  **repository**?🔹 | <code>string</code> | The repository is the location where the actual code for your package lives.<br/>__*Optional*__
8784
8962
  **repositoryDirectory**?🔹 | <code>string</code> | 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.<br/>__*Optional*__
8785
- **requireApproval**?🔹 | <code>[CdkApprovalLevel](#projen-cdkapprovallevel)</code> | 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.<br/>__*Default*__: CdkApprovalLevel.BROADENING
8963
+ **requireApproval**?🔹 | <code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code> | 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.<br/>__*Default*__: ApprovalLevel.BROADENING
8786
8964
  **sampleCode**?🔹 | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there.<br/>__*Default*__: true
8787
8965
  **scripts**?🔹 | <code>Map<string, string></code> | npm scripts to include.<br/>__*Default*__: {}
8788
8966
  **srcdir**?🔹 | <code>string</code> | Typescript sources directory.<br/>__*Default*__: "src"
@@ -9732,6 +9910,7 @@ Name | Type | Description
9732
9910
  **ignorePatterns**?🔹 | <code>Array<string></code> | List of file patterns that should not be linted, using the same syntax as .gitignore patterns.<br/>__*Default*__: [ '*.js', '*.d.ts', 'node_modules/', '*.generated.ts', 'coverage' ]
9733
9911
  **lintProjenRc**?🔹 | <code>boolean</code> | Should we lint .projenrc.js.<br/>__*Default*__: true
9734
9912
  **prettier**?🔹 | <code>boolean</code> | Enable prettier for code formatting.<br/>__*Default*__: false
9913
+ **tsAlwaysTryTypes**?🔹 | <code>boolean</code> | Always try to resolve types under `<root>@types` directory even it doesn't contain any source code.<br/>__*Default*__: true
9735
9914
  **tsconfigPath**?🔹 | <code>string</code> | Path to `tsconfig.json` which should be used by eslint.<br/>__*Default*__: "./tsconfig.json"
9736
9915
 
9737
9916
 
@@ -11250,6 +11429,94 @@ Name | Type | Description
11250
11429
 
11251
11430
 
11252
11431
 
11432
+ ## struct AwsCdkJavaAppOptions 🔹 <a id="projen-awscdk-awscdkjavaappoptions"></a>
11433
+
11434
+
11435
+
11436
+
11437
+
11438
+
11439
+ Name | Type | Description
11440
+ -----|------|-------------
11441
+ **artifactId**🔹 | <code>string</code> | The artifactId is generally the name that the project is known by.
11442
+ **cdkVersion**🔹 | <code>string</code> | AWS CDK version to use (you can use semantic versioning).
11443
+ **groupId**🔹 | <code>string</code> | This is generally unique amongst an organization or a project.
11444
+ **mainClass**🔹 | <code>string</code> | The name of the Java class with the static `main()` method.
11445
+ **name**🔹 | <code>string</code> | This is the name of your project.
11446
+ **version**🔹 | <code>string</code> | This is the last piece of the naming puzzle.
11447
+ **autoApproveOptions**?🔹 | <code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code> | Enable and configure the 'auto approve' workflow.<br/>__*Default*__: auto approve is disabled
11448
+ **autoMergeOptions**?🔹 | <code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code> | Configure options for automatic merging on GitHub.<br/>__*Default*__: see defaults in `AutoMergeOptions`
11449
+ **cdkDependencies**?🔹 | <code>Array<string></code> | Which AWS CDK modules this app uses.<br/>__*Optional*__
11450
+ **cdkout**?🔹 | <code>string</code> | cdk.out directory.<br/>__*Default*__: "cdk.out"
11451
+ **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
11452
+ **compileOptions**?🔹 | <code>[java.MavenCompileOptions](#projen-java-mavencompileoptions)</code> | Compile options.<br/>__*Default*__: defaults
11453
+ **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
11454
+ **deps**?🔹 | <code>Array<string></code> | List of runtime dependencies for this project.<br/>__*Default*__: []
11455
+ **description**?🔹 | <code>string</code> | Description of a project is always good.<br/>__*Default*__: undefined
11456
+ **devContainer**?🔹 | <code>boolean</code> | Add a VSCode development environment (used for GitHub Codespaces).<br/>__*Default*__: false
11457
+ **distdir**?🔹 | <code>string</code> | Final artifact output directory.<br/>__*Default*__: "dist/java"
11458
+ **featureFlags**?🔹 | <code>boolean</code> | Include all feature flags in cdk.json.<br/>__*Default*__: true
11459
+ **github**?🔹 | <code>boolean</code> | Enable GitHub integration.<br/>__*Default*__: true
11460
+ **githubOptions**?🔹 | <code>[github.GitHubOptions](#projen-github-githuboptions)</code> | Options for GitHub integration.<br/>__*Default*__: see GitHubOptions
11461
+ **gitpod**?🔹 | <code>boolean</code> | Add a Gitpod development environment.<br/>__*Default*__: false
11462
+ **junit**?🔹 | <code>boolean</code> | Include junit tests.<br/>__*Default*__: true
11463
+ **junitOptions**?🔹 | <code>[java.JunitOptions](#projen-java-junitoptions)</code> | junit options.<br/>__*Default*__: defaults
11464
+ **logging**?🔹 | <code>[LoggerOptions](#projen-loggeroptions)</code> | Configure logging options such as verbosity.<br/>__*Default*__: {}
11465
+ **mergify**?⚠️ | <code>boolean</code> | Whether mergify should be enabled on this repository or not.<br/>__*Default*__: true
11466
+ **outdir**?🔹 | <code>string</code> | The root directory of the project.<br/>__*Default*__: "."
11467
+ **packaging**?🔹 | <code>string</code> | Project packaging format.<br/>__*Default*__: "jar"
11468
+ **packagingOptions**?🔹 | <code>[java.MavenPackagingOptions](#projen-java-mavenpackagingoptions)</code> | Packaging options.<br/>__*Default*__: defaults
11469
+ **parent**?🔹 | <code>[Project](#projen-project)</code> | The parent project, if this project is part of a bigger project.<br/>__*Optional*__
11470
+ **projectType**?⚠️ | <code>[ProjectType](#projen-projecttype)</code> | Which type of project this is (library/app).<br/>__*Default*__: ProjectType.UNKNOWN
11471
+ **projenrcJava**?🔹 | <code>boolean</code> | Use projenrc in java.<br/>__*Default*__: true
11472
+ **projenrcJavaOptions**?🔹 | <code>[java.ProjenrcOptions](#projen-java-projenrcoptions)</code> | Options related to projenrc in java.<br/>__*Default*__: default options
11473
+ **projenrcJson**?🔹 | <code>boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.<br/>__*Default*__: false
11474
+ **projenrcJsonOptions**?🔹 | <code>[json.ProjenrcOptions](#projen-json-projenrcoptions)</code> | Options for .projenrc.json.<br/>__*Default*__: default options
11475
+ **readme**?🔹 | <code>[SampleReadmeProps](#projen-samplereadmeprops)</code> | The README setup.<br/>__*Default*__: { filename: 'README.md', contents: '# replace this' }
11476
+ **requireApproval**?🔹 | <code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code> | 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.<br/>__*Default*__: ApprovalLevel.BROADENING
11477
+ **sample**?🔹 | <code>boolean</code> | Include sample code and test if the relevant directories don't exist.<br/>__*Optional*__
11478
+ **sampleJavaPackage**?🔹 | <code>string</code> | The java package to use for the code sample.<br/>__*Default*__: "org.acme"
11479
+ **stale**?🔹 | <code>boolean</code> | Auto-close of stale issues and pull request.<br/>__*Default*__: true
11480
+ **staleOptions**?🔹 | <code>[github.StaleOptions](#projen-github-staleoptions)</code> | Auto-close stale issues and pull requests.<br/>__*Default*__: see defaults in `StaleOptions`
11481
+ **testDeps**?🔹 | <code>Array<string></code> | List of test dependencies for this project.<br/>__*Default*__: []
11482
+ **url**?🔹 | <code>string</code> | The URL, like the name, is not required.<br/>__*Default*__: undefined
11483
+ **vscode**?🔹 | <code>boolean</code> | Enable VSCode integration.<br/>__*Default*__: true
11484
+
11485
+
11486
+
11487
+ ## struct CdkConfigCommonOptions 🔹 <a id="projen-awscdk-cdkconfigcommonoptions"></a>
11488
+
11489
+
11490
+ Common options for `cdk.json`.
11491
+
11492
+
11493
+
11494
+ Name | Type | Description
11495
+ -----|------|-------------
11496
+ **cdkout**?🔹 | <code>string</code> | cdk.out directory.<br/>__*Default*__: "cdk.out"
11497
+ **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
11498
+ **featureFlags**?🔹 | <code>boolean</code> | Include all feature flags in cdk.json.<br/>__*Default*__: true
11499
+ **requireApproval**?🔹 | <code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code> | 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.<br/>__*Default*__: ApprovalLevel.BROADENING
11500
+
11501
+
11502
+
11503
+ ## struct CdkConfigOptions 🔹 <a id="projen-awscdk-cdkconfigoptions"></a>
11504
+
11505
+
11506
+ Options for `CdkJson`.
11507
+
11508
+
11509
+
11510
+ Name | Type | Description
11511
+ -----|------|-------------
11512
+ **app**🔹 | <code>string</code> | The command line to execute in order to synthesize the CDK application (language specific).
11513
+ **cdkout**?🔹 | <code>string</code> | cdk.out directory.<br/>__*Default*__: "cdk.out"
11514
+ **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
11515
+ **featureFlags**?🔹 | <code>boolean</code> | Include all feature flags in cdk.json.<br/>__*Default*__: true
11516
+ **requireApproval**?🔹 | <code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code> | 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.<br/>__*Default*__: ApprovalLevel.BROADENING
11517
+
11518
+
11519
+
11253
11520
  ## struct Dependency 🔹 <a id="projen-deps-dependency"></a>
11254
11521
 
11255
11522
  __Obtainable from__: [Dependencies](#projen-deps-dependencies).[addDependency](#projen-deps-dependencies#projen-deps-dependencies-adddependency)(), [Dependencies](#projen-deps-dependencies).[getDependency](#projen-deps-dependencies#projen-deps-dependencies-getdependency)(), [JavaProject](#projen-java-javaproject).[addPlugin](#projen-java-javaproject#projen-java-javaproject-addplugin)(), [Pom](#projen-java-pom).[addPlugin](#projen-java-pom#projen-java-pom-addplugin)()
@@ -11537,6 +11804,52 @@ Name | Type | Description
11537
11804
 
11538
11805
 
11539
11806
 
11807
+ ## struct JavaProjectCommonOptions 🔹 <a id="projen-java-javaprojectcommonoptions"></a>
11808
+
11809
+
11810
+ Options for `JavaProject`.
11811
+
11812
+
11813
+
11814
+ Name | Type | Description
11815
+ -----|------|-------------
11816
+ **artifactId**🔹 | <code>string</code> | The artifactId is generally the name that the project is known by.
11817
+ **groupId**🔹 | <code>string</code> | This is generally unique amongst an organization or a project.
11818
+ **name**🔹 | <code>string</code> | This is the name of your project.
11819
+ **version**🔹 | <code>string</code> | This is the last piece of the naming puzzle.
11820
+ **autoApproveOptions**?🔹 | <code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code> | Enable and configure the 'auto approve' workflow.<br/>__*Default*__: auto approve is disabled
11821
+ **autoMergeOptions**?🔹 | <code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code> | Configure options for automatic merging on GitHub.<br/>__*Default*__: see defaults in `AutoMergeOptions`
11822
+ **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
11823
+ **compileOptions**?🔹 | <code>[java.MavenCompileOptions](#projen-java-mavencompileoptions)</code> | Compile options.<br/>__*Default*__: defaults
11824
+ **deps**?🔹 | <code>Array<string></code> | List of runtime dependencies for this project.<br/>__*Default*__: []
11825
+ **description**?🔹 | <code>string</code> | Description of a project is always good.<br/>__*Default*__: undefined
11826
+ **devContainer**?🔹 | <code>boolean</code> | Add a VSCode development environment (used for GitHub Codespaces).<br/>__*Default*__: false
11827
+ **distdir**?🔹 | <code>string</code> | Final artifact output directory.<br/>__*Default*__: "dist/java"
11828
+ **github**?🔹 | <code>boolean</code> | Enable GitHub integration.<br/>__*Default*__: true
11829
+ **githubOptions**?🔹 | <code>[github.GitHubOptions](#projen-github-githuboptions)</code> | Options for GitHub integration.<br/>__*Default*__: see GitHubOptions
11830
+ **gitpod**?🔹 | <code>boolean</code> | Add a Gitpod development environment.<br/>__*Default*__: false
11831
+ **junit**?🔹 | <code>boolean</code> | Include junit tests.<br/>__*Default*__: true
11832
+ **junitOptions**?🔹 | <code>[java.JunitOptions](#projen-java-junitoptions)</code> | junit options.<br/>__*Default*__: defaults
11833
+ **logging**?🔹 | <code>[LoggerOptions](#projen-loggeroptions)</code> | Configure logging options such as verbosity.<br/>__*Default*__: {}
11834
+ **mergify**?⚠️ | <code>boolean</code> | Whether mergify should be enabled on this repository or not.<br/>__*Default*__: true
11835
+ **outdir**?🔹 | <code>string</code> | The root directory of the project.<br/>__*Default*__: "."
11836
+ **packaging**?🔹 | <code>string</code> | Project packaging format.<br/>__*Default*__: "jar"
11837
+ **packagingOptions**?🔹 | <code>[java.MavenPackagingOptions](#projen-java-mavenpackagingoptions)</code> | Packaging options.<br/>__*Default*__: defaults
11838
+ **parent**?🔹 | <code>[Project](#projen-project)</code> | The parent project, if this project is part of a bigger project.<br/>__*Optional*__
11839
+ **projectType**?⚠️ | <code>[ProjectType](#projen-projecttype)</code> | Which type of project this is (library/app).<br/>__*Default*__: ProjectType.UNKNOWN
11840
+ **projenrcJava**?🔹 | <code>boolean</code> | Use projenrc in java.<br/>__*Default*__: true
11841
+ **projenrcJavaOptions**?🔹 | <code>[java.ProjenrcOptions](#projen-java-projenrcoptions)</code> | Options related to projenrc in java.<br/>__*Default*__: default options
11842
+ **projenrcJson**?🔹 | <code>boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.<br/>__*Default*__: false
11843
+ **projenrcJsonOptions**?🔹 | <code>[json.ProjenrcOptions](#projen-json-projenrcoptions)</code> | Options for .projenrc.json.<br/>__*Default*__: default options
11844
+ **readme**?🔹 | <code>[SampleReadmeProps](#projen-samplereadmeprops)</code> | The README setup.<br/>__*Default*__: { filename: 'README.md', contents: '# replace this' }
11845
+ **stale**?🔹 | <code>boolean</code> | Auto-close of stale issues and pull request.<br/>__*Default*__: true
11846
+ **staleOptions**?🔹 | <code>[github.StaleOptions](#projen-github-staleoptions)</code> | Auto-close stale issues and pull requests.<br/>__*Default*__: see defaults in `StaleOptions`
11847
+ **testDeps**?🔹 | <code>Array<string></code> | List of test dependencies for this project.<br/>__*Default*__: []
11848
+ **url**?🔹 | <code>string</code> | The URL, like the name, is not required.<br/>__*Default*__: undefined
11849
+ **vscode**?🔹 | <code>boolean</code> | Enable VSCode integration.<br/>__*Default*__: true
11850
+
11851
+
11852
+
11540
11853
  ## struct JavaProjectOptions 🔹 <a id="projen-java-javaprojectoptions"></a>
11541
11854
 
11542
11855
 
@@ -13182,17 +13495,6 @@ Name | Description
13182
13495
  **DAILY** 🔹|Automatically bump & release a new version on a daily basis.
13183
13496
 
13184
13497
 
13185
- ## enum CdkApprovalLevel 🔹 <a id="projen-cdkapprovallevel"></a>
13186
-
13187
-
13188
-
13189
- Name | Description
13190
- -----|-----
13191
- **NEVER** 🔹|Approval is never required.
13192
- **ANY_CHANGE** 🔹|Requires approval on any IAM or security-group-related change.
13193
- **BROADENING** 🔹|Requires approval when IAM statements or traffic rules are added;
13194
-
13195
-
13196
13498
  ## enum DockerComposeProtocol 🔹 <a id="projen-dockercomposeprotocol"></a>
13197
13499
 
13198
13500
  Network protocol for port mapping.
@@ -13344,6 +13646,17 @@ Name | Description
13344
13646
  **NODE** 🔹|Resolution strategy which attempts to mimic the Node.js module resolution strategy at runtime.
13345
13647
 
13346
13648
 
13649
+ ## enum ApprovalLevel 🔹 <a id="projen-awscdk-approvallevel"></a>
13650
+
13651
+ Which approval is required when deploying CDK apps.
13652
+
13653
+ Name | Description
13654
+ -----|-----
13655
+ **NEVER** 🔹|Approval is never required.
13656
+ **ANY_CHANGE** 🔹|Requires approval on any IAM or security-group-related change.
13657
+ **BROADENING** 🔹|Requires approval when IAM statements or traffic rules are added;
13658
+
13659
+
13347
13660
  ## enum DependencyType 🔹 <a id="projen-deps-dependencytype"></a>
13348
13661
 
13349
13662
  Type of dependency.
package/README.md CHANGED
@@ -46,6 +46,7 @@ Currently supported project types (use `npx projen new` without a type for a
46
46
  list):
47
47
 
48
48
  <!-- <macro exec="node ./scripts/readme-projects.js"> -->
49
+ * [awscdk-app-java](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java.
49
50
  * [awscdk-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-awscdktypescriptapp) - AWS CDK app in TypeScript.
50
51
  * [awscdk-construct](https://github.com/projen/projen/blob/main/API.md#projen-awscdkconstructlibrary) - AWS CDK construct library project.
51
52
  * [cdk8s-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-cdk8stypescriptapp) - CDK8s app in TypeScript.
@@ -0,0 +1,103 @@
1
+ import { Component } from '../component';
2
+ import { JsonFile } from '../json';
3
+ import { Project } from '../project';
4
+ /**
5
+ * (experimental) Common options for `cdk.json`.
6
+ *
7
+ * @experimental
8
+ */
9
+ export interface CdkConfigCommonOptions {
10
+ /**
11
+ * (experimental) Additional context to include in `cdk.json`.
12
+ *
13
+ * @default - no additional context
14
+ * @experimental
15
+ */
16
+ readonly context?: {
17
+ [key: string]: string;
18
+ };
19
+ /**
20
+ * (experimental) Include all feature flags in cdk.json.
21
+ *
22
+ * @default true
23
+ * @experimental
24
+ */
25
+ readonly featureFlags?: boolean;
26
+ /**
27
+ * (experimental) 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.
28
+ *
29
+ * @default ApprovalLevel.BROADENING
30
+ * @experimental
31
+ */
32
+ readonly requireApproval?: ApprovalLevel;
33
+ /**
34
+ * (experimental) cdk.out directory.
35
+ *
36
+ * @default "cdk.out"
37
+ * @experimental
38
+ */
39
+ readonly cdkout?: string;
40
+ }
41
+ /**
42
+ * (experimental) Options for `CdkJson`.
43
+ *
44
+ * @experimental
45
+ */
46
+ export interface CdkConfigOptions extends CdkConfigCommonOptions {
47
+ /**
48
+ * (experimental) The command line to execute in order to synthesize the CDK application (language specific).
49
+ *
50
+ * @experimental
51
+ */
52
+ readonly app: string;
53
+ }
54
+ /**
55
+ * (experimental) Represents cdk.json file.
56
+ *
57
+ * @experimental
58
+ */
59
+ export declare class CdkConfig extends Component {
60
+ /**
61
+ * (experimental) Represents the JSON file.
62
+ *
63
+ * @experimental
64
+ */
65
+ readonly json: JsonFile;
66
+ /**
67
+ * (experimental) Name of the cdk.out directory.
68
+ *
69
+ * @experimental
70
+ */
71
+ readonly cdkout: string;
72
+ /**
73
+ * @experimental
74
+ */
75
+ constructor(project: Project, options: CdkConfigOptions);
76
+ }
77
+ /**
78
+ * (experimental) Which approval is required when deploying CDK apps.
79
+ *
80
+ * @experimental
81
+ */
82
+ export declare enum ApprovalLevel {
83
+ /**
84
+ * (experimental) Approval is never required.
85
+ *
86
+ * @experimental
87
+ */
88
+ NEVER = "never",
89
+ /**
90
+ * (experimental) Requires approval on any IAM or security-group-related change.
91
+ *
92
+ * @experimental
93
+ */
94
+ ANY_CHANGE = "any-change",
95
+ /**
96
+ * (experimental) Requires approval when IAM statements or traffic rules are added;
97
+ *
98
+ * removals don't require approval
99
+ *
100
+ * @experimental
101
+ */
102
+ BROADENING = "broadening"
103
+ }