All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProject Maven / Gradle / Ivy

package software.aws.awsprototypingsdk.nxmonorepo;

/**
 * This project type will bootstrap a NX based monorepo with support for polygot builds, build caching, dependency graph visualization and much more.
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.74.0 (build 6d08790)", date = "2023-02-28T00:38:33.021Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Jsii(module = software.aws.awsprototypingsdk.$Module.class, fqn = "aws-prototyping-sdk.nx_monorepo.NxMonorepoProject")
public class NxMonorepoProject extends io.github.cdklabs.projen.typescript.TypeScriptProject {

    protected NxMonorepoProject(final software.amazon.jsii.JsiiObjectRef objRef) {
        super(objRef);
    }

    protected NxMonorepoProject(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
        super(initializationMode);
    }

    /**
     * @param options This parameter is required.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    public NxMonorepoProject(final @org.jetbrains.annotations.NotNull software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProjectOptions options) {
        super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
        software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(options, "options is required") });
    }

    /**
     * Create an implicit dependency between two Project's.
     * 

* This is typically * used in polygot repos where a Typescript project wants a build dependency * on a Python project as an example. *

* @param dependent project you want to have the dependency. This parameter is required. * @param dependee project you wish to depend on. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public void addImplicitDependency(final @org.jetbrains.annotations.NotNull io.github.cdklabs.projen.Project dependent, final @org.jetbrains.annotations.NotNull io.github.cdklabs.projen.Project dependee) { software.amazon.jsii.Kernel.call(this, "addImplicitDependency", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(dependent, "dependent is required"), java.util.Objects.requireNonNull(dependee, "dependee is required") }); } /** * Add one or more additional package globs to the workspace. *

* @param packageGlobs paths to the package to include in the workspace (for example packages/my-package). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public void addWorkspacePackages(final @org.jetbrains.annotations.NotNull java.lang.String... packageGlobs) { software.amazon.jsii.Kernel.call(this, "addWorkspacePackages", software.amazon.jsii.NativeType.VOID, java.util.Arrays.stream(packageGlobs).toArray(Object[]::new)); } /** * Synthesize all project files into `outdir`. *

*

    *
  1. Call "this.preSynthesize()"
  2. *
  3. Delete all generated files
  4. *
  5. Synthesize all sub-projects
  6. *
  7. Synthesize all components of this project
  8. *
  9. Call "postSynthesize()" for all components of this project
  10. *
  11. Call "this.postSynthesize()"
  12. *
*/ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public void synth() { software.amazon.jsii.Kernel.call(this, "synth", software.amazon.jsii.NativeType.VOID); } /** */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public @org.jetbrains.annotations.NotNull java.util.List getSubProjects() { return java.util.Collections.unmodifiableList(software.amazon.jsii.Kernel.get(this, "subProjects", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(io.github.cdklabs.projen.Project.class)))); } /** * A fluent builder for {@link software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProject}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static final class Builder implements software.amazon.jsii.Builder { /** * @return a new instance of {@link Builder}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static Builder create() { return new Builder(); } private final software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProjectOptions.Builder options; private Builder() { this.options = new software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProjectOptions.Builder(); } /** * (experimental) This is the name of your project. *

* Default: $BASEDIR *

* @return {@code this} * @param name This is the name of your project. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder name(final java.lang.String name) { this.options.name(name); return this; } /** * (experimental) Whether to commit the managed files by default. *

* Default: true *

* @return {@code this} * @param commitGenerated Whether to commit the managed files by default. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder commitGenerated(final java.lang.Boolean commitGenerated) { this.options.commitGenerated(commitGenerated); return this; } /** * (experimental) Configure logging options such as verbosity. *

* Default: {} *

* @return {@code this} * @param logging Configure logging options such as verbosity. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder logging(final io.github.cdklabs.projen.LoggerOptions logging) { this.options.logging(logging); return this; } /** * (experimental) The root directory of the project. *

* Relative to this directory, all files are synthesized. *

* If this project has a parent, this directory is relative to the parent * directory and it cannot be the same as the parent or any of it's other * sub-projects. *

* Default: "." *

* @return {@code this} * @param outdir The root directory of the project. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder outdir(final java.lang.String outdir) { this.options.outdir(outdir); return this; } /** * (experimental) The parent project, if this project is part of a bigger project. *

* @return {@code this} * @param parent The parent project, if this project is part of a bigger project. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder parent(final io.github.cdklabs.projen.Project parent) { this.options.parent(parent); return this; } /** * (experimental) The shell command to use in order to run the projen CLI. *

* Can be used to customize in special environments. *

* Default: "npx projen" *

* @return {@code this} * @param projenCommand The shell command to use in order to run the projen CLI. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenCommand(final java.lang.String projenCommand) { this.options.projenCommand(projenCommand); return this; } /** * (experimental) Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. *

* Default: false *

* @return {@code this} * @param projenrcJson Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenrcJson(final java.lang.Boolean projenrcJson) { this.options.projenrcJson(projenrcJson); return this; } /** * (experimental) Options for .projenrc.json. *

* Default: - default options *

* @return {@code this} * @param projenrcJsonOptions Options for .projenrc.json. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenrcJsonOptions(final io.github.cdklabs.projen.ProjenrcOptions projenrcJsonOptions) { this.options.projenrcJsonOptions(projenrcJsonOptions); return this; } /** * (experimental) Use renovatebot to handle dependency upgrades. *

* Default: false *

* @return {@code this} * @param renovatebot Use renovatebot to handle dependency upgrades. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder renovatebot(final java.lang.Boolean renovatebot) { this.options.renovatebot(renovatebot); return this; } /** * (experimental) Options for renovatebot. *

* Default: - default options *

* @return {@code this} * @param renovatebotOptions Options for renovatebot. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder renovatebotOptions(final io.github.cdklabs.projen.RenovatebotOptions renovatebotOptions) { this.options.renovatebotOptions(renovatebotOptions); return this; } /** * (experimental) Enable and configure the 'auto approve' workflow. *

* Default: - auto approve is disabled *

* @return {@code this} * @param autoApproveOptions Enable and configure the 'auto approve' workflow. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoApproveOptions(final io.github.cdklabs.projen.github.AutoApproveOptions autoApproveOptions) { this.options.autoApproveOptions(autoApproveOptions); return this; } /** * (experimental) Enable automatic merging on GitHub. *

* Has no effect if github.mergify * is set to false. *

* Default: true *

* @return {@code this} * @param autoMerge Enable automatic merging on GitHub. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoMerge(final java.lang.Boolean autoMerge) { this.options.autoMerge(autoMerge); return this; } /** * (experimental) Configure options for automatic merging on GitHub. *

* Has no effect if * github.mergify or autoMerge is set to false. *

* Default: - see defaults in `AutoMergeOptions` *

* @return {@code this} * @param autoMergeOptions Configure options for automatic merging on GitHub. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoMergeOptions(final io.github.cdklabs.projen.github.AutoMergeOptions autoMergeOptions) { this.options.autoMergeOptions(autoMergeOptions); return this; } /** * (experimental) Add a `clobber` task which resets the repo to origin. *

* Default: true *

* @return {@code this} * @param clobber Add a `clobber` task which resets the repo to origin. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder clobber(final java.lang.Boolean clobber) { this.options.clobber(clobber); return this; } /** * (experimental) Add a VSCode development environment (used for GitHub Codespaces). *

* Default: false *

* @return {@code this} * @param devContainer Add a VSCode development environment (used for GitHub Codespaces). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder devContainer(final java.lang.Boolean devContainer) { this.options.devContainer(devContainer); return this; } /** * (experimental) Enable GitHub integration. *

* Enabled by default for root projects. Disabled for non-root projects. *

* Default: true *

* @return {@code this} * @param github Enable GitHub integration. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder github(final java.lang.Boolean github) { this.options.github(github); return this; } /** * (experimental) Options for GitHub integration. *

* Default: - see GitHubOptions *

* @return {@code this} * @param githubOptions Options for GitHub integration. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder githubOptions(final io.github.cdklabs.projen.github.GitHubOptions githubOptions) { this.options.githubOptions(githubOptions); return this; } /** * (experimental) Add a Gitpod development environment. *

* Default: false *

* @return {@code this} * @param gitpod Add a Gitpod development environment. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder gitpod(final java.lang.Boolean gitpod) { this.options.gitpod(gitpod); return this; } /** * (deprecated) Whether mergify should be enabled on this repository or not. *

* Default: true *

* @return {@code this} * @deprecated use `githubOptions.mergify` instead * @param mergify Whether mergify should be enabled on this repository or not. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder mergify(final java.lang.Boolean mergify) { this.options.mergify(mergify); return this; } /** * (deprecated) Options for mergify. *

* Default: - default options *

* @return {@code this} * @deprecated use `githubOptions.mergifyOptions` instead * @param mergifyOptions Options for mergify. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder mergifyOptions(final io.github.cdklabs.projen.github.MergifyOptions mergifyOptions) { this.options.mergifyOptions(mergifyOptions); return this; } /** * (deprecated) Which type of project this is (library/app). *

* Default: ProjectType.UNKNOWN *

* @return {@code this} * @deprecated no longer supported at the base project level * @param projectType Which type of project this is (library/app). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder projectType(final io.github.cdklabs.projen.ProjectType projectType) { this.options.projectType(projectType); return this; } /** * (experimental) Choose a method of providing GitHub API access for projen workflows. *

* Default: - use a personal access token named PROJEN_GITHUB_TOKEN *

* @return {@code this} * @param projenCredentials Choose a method of providing GitHub API access for projen workflows. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenCredentials(final io.github.cdklabs.projen.github.GithubCredentials projenCredentials) { this.options.projenCredentials(projenCredentials); return this; } /** * (deprecated) The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. *

* This token needs to have the repo, workflows * and packages scope. *

* Default: "PROJEN_GITHUB_TOKEN" *

* @return {@code this} * @deprecated use `projenCredentials` * @param projenTokenSecret The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder projenTokenSecret(final java.lang.String projenTokenSecret) { this.options.projenTokenSecret(projenTokenSecret); return this; } /** * (experimental) The README setup. *

* Default: - { filename: 'README.md', contents: '# replace this' } *

* Example: *

*

         * "{ filename: 'readme.md', contents: '# title' }"
         * 
*

* @return {@code this} * @param readme The README setup. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder readme(final io.github.cdklabs.projen.SampleReadmeProps readme) { this.options.readme(readme); return this; } /** * (experimental) Auto-close of stale issues and pull request. *

* See staleOptions for options. *

* Default: false *

* @return {@code this} * @param stale Auto-close of stale issues and pull request. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder stale(final java.lang.Boolean stale) { this.options.stale(stale); return this; } /** * (experimental) Auto-close stale issues and pull requests. *

* To disable set stale to false. *

* Default: - see defaults in `StaleOptions` *

* @return {@code this} * @param staleOptions Auto-close stale issues and pull requests. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder staleOptions(final io.github.cdklabs.projen.github.StaleOptions staleOptions) { this.options.staleOptions(staleOptions); return this; } /** * (experimental) Enable VSCode integration. *

* Enabled by default for root projects. Disabled for non-root projects. *

* Default: true *

* @return {@code this} * @param vscode Enable VSCode integration. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder vscode(final java.lang.Boolean vscode) { this.options.vscode(vscode); return this; } /** * (experimental) Allow the project to include `peerDependencies` and `bundledDependencies`. *

* This is normally only allowed for libraries. For apps, there's no meaning * for specifying these. *

* Default: true *

* @return {@code this} * @param allowLibraryDependencies Allow the project to include `peerDependencies` and `bundledDependencies`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder allowLibraryDependencies(final java.lang.Boolean allowLibraryDependencies) { this.options.allowLibraryDependencies(allowLibraryDependencies); return this; } /** * (experimental) Author's e-mail. *

* @return {@code this} * @param authorEmail Author's e-mail. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder authorEmail(final java.lang.String authorEmail) { this.options.authorEmail(authorEmail); return this; } /** * (experimental) Author's name. *

* @return {@code this} * @param authorName Author's name. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder authorName(final java.lang.String authorName) { this.options.authorName(authorName); return this; } /** * (experimental) Is the author an organization. *

* @return {@code this} * @param authorOrganization Is the author an organization. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder authorOrganization(final java.lang.Boolean authorOrganization) { this.options.authorOrganization(authorOrganization); return this; } /** * (experimental) Author's URL / Website. *

* @return {@code this} * @param authorUrl Author's URL / Website. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder authorUrl(final java.lang.String authorUrl) { this.options.authorUrl(authorUrl); return this; } /** * (experimental) Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. *

* Default: true *

* @return {@code this} * @param autoDetectBin Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoDetectBin(final java.lang.Boolean autoDetectBin) { this.options.autoDetectBin(autoDetectBin); return this; } /** * (experimental) Binary programs vended with your module. *

* You can use this option to add/customize how binaries are represented in * your package.json, but unless autoDetectBin is false, every * executable file under bin will automatically be added to this section. *

* @return {@code this} * @param bin Binary programs vended with your module. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder bin(final java.util.Map bin) { this.options.bin(bin); return this; } /** * (experimental) The email address to which issues should be reported. *

* @return {@code this} * @param bugsEmail The email address to which issues should be reported. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder bugsEmail(final java.lang.String bugsEmail) { this.options.bugsEmail(bugsEmail); return this; } /** * (experimental) The url to your project's issue tracker. *

* @return {@code this} * @param bugsUrl The url to your project's issue tracker. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder bugsUrl(final java.lang.String bugsUrl) { this.options.bugsUrl(bugsUrl); return this; } /** * (experimental) List of dependencies to bundle into this module. *

* These modules will be * added both to the dependencies section and bundledDependencies section of * your package.json. *

* The recommendation is to only specify the module name here (e.g. * express). This will behave similar to yarn add or npm install in the * sense that it will add the module as a dependency to your package.json * file with the latest version (^). You can specify semver requirements in * the same syntax passed to npm i or yarn add (e.g. express@^2) and * this will be what you package.json will eventually include. *

* @return {@code this} * @param bundledDeps List of dependencies to bundle into this module. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder bundledDeps(final java.util.List bundledDeps) { this.options.bundledDeps(bundledDeps); return this; } /** * (experimental) Options for npm packages using AWS CodeArtifact. *

* This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact *

* Default: - undefined *

* @return {@code this} * @param codeArtifactOptions Options for npm packages using AWS CodeArtifact. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder codeArtifactOptions(final io.github.cdklabs.projen.javascript.CodeArtifactOptions codeArtifactOptions) { this.options.codeArtifactOptions(codeArtifactOptions); return this; } /** * (experimental) Runtime dependencies of this module. *

* The recommendation is to only specify the module name here (e.g. * express). This will behave similar to yarn add or npm install in the * sense that it will add the module as a dependency to your package.json * file with the latest version (^). You can specify semver requirements in * the same syntax passed to npm i or yarn add (e.g. express@^2) and * this will be what you package.json will eventually include. *

* Default: [] *

* Example: *

*

         * [ 'express', 'lodash', 'foo@^2' ]
         * 
*

* @return {@code this} * @param deps Runtime dependencies of this module. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder deps(final java.util.List deps) { this.options.deps(deps); return this; } /** * (experimental) The description is just a string that helps people understand the purpose of the package. *

* It can be used when searching for packages in a package manager as well. * See https://classic.yarnpkg.com/en/docs/package-json/#toc-description *

* @return {@code this} * @param description The description is just a string that helps people understand the purpose of the package. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder description(final java.lang.String description) { this.options.description(description); return this; } /** * (experimental) Build dependencies for this module. *

* These dependencies will only be * available in your build environment but will not be fetched when this * module is consumed. *

* The recommendation is to only specify the module name here (e.g. * express). This will behave similar to yarn add or npm install in the * sense that it will add the module as a dependency to your package.json * file with the latest version (^). You can specify semver requirements in * the same syntax passed to npm i or yarn add (e.g. express@^2) and * this will be what you package.json will eventually include. *

* Default: [] *

* Example: *

*

         * [ 'typescript', '@types/express' ]
         * 
*

* @return {@code this} * @param devDeps Build dependencies for this module. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder devDeps(final java.util.List devDeps) { this.options.devDeps(devDeps); return this; } /** * (experimental) Module entrypoint (`main` in `package.json`). *

* Set to an empty string to not include main in your package.json *

* Default: "lib/index.js" *

* @return {@code this} * @param entrypoint Module entrypoint (`main` in `package.json`). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder entrypoint(final java.lang.String entrypoint) { this.options.entrypoint(entrypoint); return this; } /** * (experimental) Package's Homepage / Website. *

* @return {@code this} * @param homepage Package's Homepage / Website. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder homepage(final java.lang.String homepage) { this.options.homepage(homepage); return this; } /** * (experimental) Keywords to include in `package.json`. *

* @return {@code this} * @param keywords Keywords to include in `package.json`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder keywords(final java.util.List keywords) { this.options.keywords(keywords); return this; } /** * (experimental) License's SPDX identifier. *

* See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. * Use the licensed option if you want to no license to be specified. *

* Default: "Apache-2.0" *

* @return {@code this} * @param license License's SPDX identifier. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder license(final java.lang.String license) { this.options.license(license); return this; } /** * (experimental) Indicates if a license should be added. *

* Default: true *

* @return {@code this} * @param licensed Indicates if a license should be added. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder licensed(final java.lang.Boolean licensed) { this.options.licensed(licensed); return this; } /** * (experimental) Minimum node.js version to require via `engines` (inclusive). *

* Default: - no max *

* @return {@code this} * @param maxNodeVersion Minimum node.js version to require via `engines` (inclusive). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder maxNodeVersion(final java.lang.String maxNodeVersion) { this.options.maxNodeVersion(maxNodeVersion); return this; } /** * (experimental) Minimum Node.js version to require via package.json `engines` (inclusive). *

* Default: - no "engines" specified *

* @return {@code this} * @param minNodeVersion Minimum Node.js version to require via package.json `engines` (inclusive). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder minNodeVersion(final java.lang.String minNodeVersion) { this.options.minNodeVersion(minNodeVersion); return this; } /** * (experimental) Access level of the npm package. *

* Default: - for scoped packages (e.g. `foo@bar`), the default is * `NpmAccess.RESTRICTED`, for non-scoped packages, the default is * `NpmAccess.PUBLIC`. *

* @return {@code this} * @param npmAccess Access level of the npm package. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder npmAccess(final io.github.cdklabs.projen.javascript.NpmAccess npmAccess) { this.options.npmAccess(npmAccess); return this; } /** * (deprecated) The host name of the npm registry to publish to. *

* Cannot be set together with npmRegistryUrl. *

* @return {@code this} * @deprecated use `npmRegistryUrl` instead * @param npmRegistry The host name of the npm registry to publish to. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder npmRegistry(final java.lang.String npmRegistry) { this.options.npmRegistry(npmRegistry); return this; } /** * (experimental) The base URL of the npm package registry. *

* Must be a URL (e.g. start with "https://" or "http://") *

* Default: "https://registry.npmjs.org" *

* @return {@code this} * @param npmRegistryUrl The base URL of the npm package registry. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder npmRegistryUrl(final java.lang.String npmRegistryUrl) { this.options.npmRegistryUrl(npmRegistryUrl); return this; } /** * (experimental) GitHub secret which contains the NPM token to use when publishing packages. *

* Default: "NPM_TOKEN" *

* @return {@code this} * @param npmTokenSecret GitHub secret which contains the NPM token to use when publishing packages. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder npmTokenSecret(final java.lang.String npmTokenSecret) { this.options.npmTokenSecret(npmTokenSecret); return this; } /** * (experimental) The Node Package Manager used to execute scripts. *

* Default: NodePackageManager.YARN *

* @return {@code this} * @param packageManager The Node Package Manager used to execute scripts. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder packageManager(final io.github.cdklabs.projen.javascript.NodePackageManager packageManager) { this.options.packageManager(packageManager); return this; } /** * (experimental) The "name" in package.json. *

* Default: - defaults to project name *

* @return {@code this} * @param packageName The "name" in package.json. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder packageName(final java.lang.String packageName) { this.options.packageName(packageName); return this; } /** * (experimental) Options for `peerDeps`. *

* @return {@code this} * @param peerDependencyOptions Options for `peerDeps`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder peerDependencyOptions(final io.github.cdklabs.projen.javascript.PeerDependencyOptions peerDependencyOptions) { this.options.peerDependencyOptions(peerDependencyOptions); return this; } /** * (experimental) Peer dependencies for this module. *

* Dependencies listed here are required to * be installed (and satisfied) by the consumer of this library. Using peer * dependencies allows you to ensure that only a single module of a certain * library exists in the node_modules tree of your consumers. *

* Note that prior to npm@7, peer dependencies are not automatically * installed, which means that adding peer dependencies to a library will be a * breaking change for your customers. *

* Unless peerDependencyOptions.pinnedDevDependency is disabled (it is * enabled by default), projen will automatically add a dev dependency with a * pinned version for each peer dependency. This will ensure that you build & * test your module against the lowest peer version required. *

* Default: [] *

* @return {@code this} * @param peerDeps Peer dependencies for this module. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder peerDeps(final java.util.List peerDeps) { this.options.peerDeps(peerDeps); return this; } /** * (experimental) The repository is the location where the actual code for your package lives. *

* See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository *

* @return {@code this} * @param repository The repository is the location where the actual code for your package lives. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder repository(final java.lang.String repository) { this.options.repository(repository); return this; } /** * (experimental) 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. *

* @return {@code this} * @param repositoryDirectory 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. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder repositoryDirectory(final java.lang.String repositoryDirectory) { this.options.repositoryDirectory(repositoryDirectory); return this; } /** * (experimental) Options for privately hosted scoped packages. *

* Default: - fetch all scoped packages from the public npm registry *

* @return {@code this} * @param scopedPackagesOptions Options for privately hosted scoped packages. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder scopedPackagesOptions(final java.util.List scopedPackagesOptions) { this.options.scopedPackagesOptions(scopedPackagesOptions); return this; } /** * (experimental) npm scripts to include. *

* If a script has the same name as a standard script, * the standard script will be overwritten. *

* Default: {} *

* @return {@code this} * @param scripts npm scripts to include. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder scripts(final java.util.Map scripts) { this.options.scripts(scripts); return this; } /** * (experimental) Package's Stability. *

* @return {@code this} * @param stability Package's Stability. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder stability(final java.lang.String stability) { this.options.stability(stability); return this; } /** * (experimental) Version requirement of `publib` which is used to publish modules to npm. *

* Default: "latest" *

* @return {@code this} * @param jsiiReleaseVersion Version requirement of `publib` which is used to publish modules to npm. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder jsiiReleaseVersion(final java.lang.String jsiiReleaseVersion) { this.options.jsiiReleaseVersion(jsiiReleaseVersion); return this; } /** * (experimental) Major version to release from the default branch. *

* If this is specified, we bump the latest version of this major version line. * If not specified, we bump the global latest version. *

* Default: - Major version is not enforced. *

* @return {@code this} * @param majorVersion Major version to release from the default branch. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder majorVersion(final java.lang.Number majorVersion) { this.options.majorVersion(majorVersion); return this; } /** * (experimental) Minimal Major version to release. *

* This can be useful to set to 1, as breaking changes before the 1.x major * release are not incrementing the major version number. *

* Can not be set together with majorVersion. *

* Default: - No minimum version is being enforced *

* @return {@code this} * @param minMajorVersion Minimal Major version to release. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder minMajorVersion(final java.lang.Number minMajorVersion) { this.options.minMajorVersion(minMajorVersion); return this; } /** * (experimental) The npmDistTag to use when publishing from the default branch. *

* To set the npm dist-tag for release branches, set the npmDistTag property * for each branch. *

* Default: "latest" *

* @return {@code this} * @param npmDistTag The npmDistTag to use when publishing from the default branch. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder npmDistTag(final java.lang.String npmDistTag) { this.options.npmDistTag(npmDistTag); return this; } /** * (experimental) Steps to execute after build as part of the release workflow. *

* Default: [] *

* @return {@code this} * @param postBuildSteps Steps to execute after build as part of the release workflow. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder postBuildSteps(final java.util.List postBuildSteps) { this.options.postBuildSteps(postBuildSteps); return this; } /** * (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). *

* Default: - normal semantic versions *

* @return {@code this} * @param prerelease Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder prerelease(final java.lang.String prerelease) { this.options.prerelease(prerelease); return this; } /** * (experimental) Instead of actually publishing to package managers, just print the publishing command. *

* Default: false *

* @return {@code this} * @param publishDryRun Instead of actually publishing to package managers, just print the publishing command. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder publishDryRun(final java.lang.Boolean publishDryRun) { this.options.publishDryRun(publishDryRun); return this; } /** * (experimental) Define publishing tasks that can be executed manually as well as workflows. *

* Normally, publishing only happens within automated workflows. Enable this * in order to create a publishing task for each publishing activity. *

* Default: false *

* @return {@code this} * @param publishTasks Define publishing tasks that can be executed manually as well as workflows. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder publishTasks(final java.lang.Boolean publishTasks) { this.options.publishTasks(publishTasks); return this; } /** * (experimental) Defines additional release branches. *

* A workflow will be created for each * release branch which will publish releases from commits in this branch. * Each release branch must be assigned a major version number which is used * to enforce that versions published from that branch always use that major * version. If multiple branches are used, the majorVersion field must also * be provided for the default branch. *

* Default: - no additional branches are used for release. you can use * `addBranch()` to add additional branches. *

* @return {@code this} * @param releaseBranches Defines additional release branches. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseBranches(final java.util.Map releaseBranches) { this.options.releaseBranches(releaseBranches); return this; } /** * (deprecated) Automatically release new versions every commit to one of branches in `releaseBranches`. *

* Default: true *

* @return {@code this} * @deprecated Use `releaseTrigger: ReleaseTrigger.continuous()` instead * @param releaseEveryCommit Automatically release new versions every commit to one of branches in `releaseBranches`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder releaseEveryCommit(final java.lang.Boolean releaseEveryCommit) { this.options.releaseEveryCommit(releaseEveryCommit); return this; } /** * (experimental) Create a github issue on every failed publishing task. *

* Default: false *

* @return {@code this} * @param releaseFailureIssue Create a github issue on every failed publishing task. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseFailureIssue(final java.lang.Boolean releaseFailureIssue) { this.options.releaseFailureIssue(releaseFailureIssue); return this; } /** * (experimental) The label to apply to issues indicating publish failures. *

* Only applies if releaseFailureIssue is true. *

* Default: "failed-release" *

* @return {@code this} * @param releaseFailureIssueLabel The label to apply to issues indicating publish failures. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseFailureIssueLabel(final java.lang.String releaseFailureIssueLabel) { this.options.releaseFailureIssueLabel(releaseFailureIssueLabel); return this; } /** * (deprecated) CRON schedule to trigger new releases. *

* Default: - no scheduled releases *

* @return {@code this} * @deprecated Use `releaseTrigger: ReleaseTrigger.scheduled()` instead * @param releaseSchedule CRON schedule to trigger new releases. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder releaseSchedule(final java.lang.String releaseSchedule) { this.options.releaseSchedule(releaseSchedule); return this; } /** * (experimental) Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. *

* Note: this prefix is used to detect the latest tagged version * when bumping, so if you change this on a project with an existing version * history, you may need to manually tag your latest release * with the new prefix. *

* Default: "v" *

* @return {@code this} * @param releaseTagPrefix Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseTagPrefix(final java.lang.String releaseTagPrefix) { this.options.releaseTagPrefix(releaseTagPrefix); return this; } /** * (experimental) The release trigger to use. *

* Default: - Continuous releases (`ReleaseTrigger.continuous()`) *

* @return {@code this} * @param releaseTrigger The release trigger to use. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseTrigger(final io.github.cdklabs.projen.release.ReleaseTrigger releaseTrigger) { this.options.releaseTrigger(releaseTrigger); return this; } /** * (experimental) The name of the default release workflow. *

* Default: "Release" *

* @return {@code this} * @param releaseWorkflowName The name of the default release workflow. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseWorkflowName(final java.lang.String releaseWorkflowName) { this.options.releaseWorkflowName(releaseWorkflowName); return this; } /** * (experimental) A set of workflow steps to execute in order to setup the workflow container. *

* @return {@code this} * @param releaseWorkflowSetupSteps A set of workflow steps to execute in order to setup the workflow container. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseWorkflowSetupSteps(final java.util.List releaseWorkflowSetupSteps) { this.options.releaseWorkflowSetupSteps(releaseWorkflowSetupSteps); return this; } /** * (experimental) Custom configuration used when creating changelog with standard-version package. *

* Given values either append to default configuration or overwrite values in it. *

* Default: - standard configuration applicable for GitHub repositories *

* @return {@code this} * @param versionrcOptions Custom configuration used when creating changelog with standard-version package. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder versionrcOptions(final java.util.Map versionrcOptions) { this.options.versionrcOptions(versionrcOptions); return this; } /** * (experimental) Container image to use for GitHub workflows. *

* Default: - default image *

* @return {@code this} * @param workflowContainerImage Container image to use for GitHub workflows. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder workflowContainerImage(final java.lang.String workflowContainerImage) { this.options.workflowContainerImage(workflowContainerImage); return this; } /** * (experimental) Github Runner selection labels. *

* Default: ["ubuntu-latest"] *

* @return {@code this} * @param workflowRunsOn Github Runner selection labels. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder workflowRunsOn(final java.util.List workflowRunsOn) { this.options.workflowRunsOn(workflowRunsOn); return this; } /** * (experimental) The name of the main release branch. *

* Default: "main" *

* @return {@code this} * @param defaultReleaseBranch The name of the main release branch. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder defaultReleaseBranch(final java.lang.String defaultReleaseBranch) { this.options.defaultReleaseBranch(defaultReleaseBranch); return this; } /** * (experimental) A directory which will contain build artifacts. *

* Default: "dist" *

* @return {@code this} * @param artifactsDirectory A directory which will contain build artifacts. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder artifactsDirectory(final java.lang.String artifactsDirectory) { this.options.artifactsDirectory(artifactsDirectory); return this; } /** * (experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). *

* Throw if set to true but autoApproveOptions are not defined. *

* Default: - true *

* @return {@code this} * @param autoApproveUpgrades Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoApproveUpgrades(final java.lang.Boolean autoApproveUpgrades) { this.options.autoApproveUpgrades(autoApproveUpgrades); return this; } /** * (experimental) Define a GitHub workflow for building PRs. *

* Default: - true if not a subproject *

* @return {@code this} * @param buildWorkflow Define a GitHub workflow for building PRs. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder buildWorkflow(final java.lang.Boolean buildWorkflow) { this.options.buildWorkflow(buildWorkflow); return this; } /** * (experimental) Build workflow triggers. *

* Default: "{ pullRequest: {}, workflowDispatch: {} }" *

* @return {@code this} * @param buildWorkflowTriggers Build workflow triggers. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder buildWorkflowTriggers(final io.github.cdklabs.projen.github.workflows.Triggers buildWorkflowTriggers) { this.options.buildWorkflowTriggers(buildWorkflowTriggers); return this; } /** * (experimental) Options for `Bundler`. *

* @return {@code this} * @param bundlerOptions Options for `Bundler`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder bundlerOptions(final io.github.cdklabs.projen.javascript.BundlerOptions bundlerOptions) { this.options.bundlerOptions(bundlerOptions); return this; } /** * (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with @codeCovTokenSecret. *

* Default: false *

* @return {@code this} * @param codeCov Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with @codeCovTokenSecret. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder codeCov(final java.lang.Boolean codeCov) { this.options.codeCov(codeCov); return this; } /** * (experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. *

* Default: - if this option is not specified, only public repositories are supported *

* @return {@code this} * @param codeCovTokenSecret Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder codeCovTokenSecret(final java.lang.String codeCovTokenSecret) { this.options.codeCovTokenSecret(codeCovTokenSecret); return this; } /** * (experimental) License copyright owner. *

* Default: - defaults to the value of authorName or "" if `authorName` is undefined. *

* @return {@code this} * @param copyrightOwner License copyright owner. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder copyrightOwner(final java.lang.String copyrightOwner) { this.options.copyrightOwner(copyrightOwner); return this; } /** * (experimental) The copyright years to put in the LICENSE file. *

* Default: - current year *

* @return {@code this} * @param copyrightPeriod The copyright years to put in the LICENSE file. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder copyrightPeriod(final java.lang.String copyrightPeriod) { this.options.copyrightPeriod(copyrightPeriod); return this; } /** * (experimental) Use dependabot to handle dependency upgrades. *

* Cannot be used in conjunction with depsUpgrade. *

* Default: false *

* @return {@code this} * @param dependabot Use dependabot to handle dependency upgrades. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder dependabot(final java.lang.Boolean dependabot) { this.options.dependabot(dependabot); return this; } /** * (experimental) Options for dependabot. *

* Default: - default options *

* @return {@code this} * @param dependabotOptions Options for dependabot. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder dependabotOptions(final io.github.cdklabs.projen.github.DependabotOptions dependabotOptions) { this.options.dependabotOptions(dependabotOptions); return this; } /** * (experimental) Use github workflows to handle dependency upgrades. *

* Cannot be used in conjunction with dependabot. *

* Default: true *

* @return {@code this} * @param depsUpgrade Use github workflows to handle dependency upgrades. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder depsUpgrade(final java.lang.Boolean depsUpgrade) { this.options.depsUpgrade(depsUpgrade); return this; } /** * (experimental) Options for `UpgradeDependencies`. *

* Default: - default options *

* @return {@code this} * @param depsUpgradeOptions Options for `UpgradeDependencies`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder depsUpgradeOptions(final io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions depsUpgradeOptions) { this.options.depsUpgradeOptions(depsUpgradeOptions); return this; } /** * (experimental) Additional entries to .gitignore. *

* @return {@code this} * @param gitignore Additional entries to .gitignore. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder gitignore(final java.util.List gitignore) { this.options.gitignore(gitignore); return this; } /** * (experimental) Setup jest unit tests. *

* Default: true *

* @return {@code this} * @param jest Setup jest unit tests. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder jest(final java.lang.Boolean jest) { this.options.jest(jest); return this; } /** * (experimental) Jest options. *

* Default: - default options *

* @return {@code this} * @param jestOptions Jest options. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder jestOptions(final io.github.cdklabs.projen.javascript.JestOptions jestOptions) { this.options.jestOptions(jestOptions); return this; } /** * (experimental) Automatically update files modified during builds to pull-request branches. *

* This means * that any files synthesized by projen or e.g. test snapshots will always be up-to-date * before a PR is merged. *

* Implies that PR builds do not have anti-tamper checks. *

* Default: true *

* @return {@code this} * @param mutableBuild Automatically update files modified during builds to pull-request branches. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder mutableBuild(final java.lang.Boolean mutableBuild) { this.options.mutableBuild(mutableBuild); return this; } /** * (deprecated) Additional entries to .npmignore. *

* @return {@code this} * @deprecated - use `project.addPackageIgnore` * @param npmignore Additional entries to .npmignore. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder npmignore(final java.util.List npmignore) { this.options.npmignore(npmignore); return this; } /** * (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. *

* Default: true *

* @return {@code this} * @param npmignoreEnabled Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder npmignoreEnabled(final java.lang.Boolean npmignoreEnabled) { this.options.npmignoreEnabled(npmignoreEnabled); return this; } /** * (experimental) Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). *

* Default: true *

* @return {@code this} * @param packageValue Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder packageValue(final java.lang.Boolean packageValue) { this.options.packageValue(packageValue); return this; } /** * (experimental) Setup prettier. *

* Default: false *

* @return {@code this} * @param prettier Setup prettier. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder prettier(final java.lang.Boolean prettier) { this.options.prettier(prettier); return this; } /** * (experimental) Prettier options. *

* Default: - default options *

* @return {@code this} * @param prettierOptions Prettier options. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder prettierOptions(final io.github.cdklabs.projen.javascript.PrettierOptions prettierOptions) { this.options.prettierOptions(prettierOptions); return this; } /** * (experimental) Indicates of "projen" should be installed as a devDependency. *

* Default: true *

* @return {@code this} * @param projenDevDependency Indicates of "projen" should be installed as a devDependency. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenDevDependency(final java.lang.Boolean projenDevDependency) { this.options.projenDevDependency(projenDevDependency); return this; } /** * (experimental) Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. *

* Default: - true if projenrcJson is false *

* @return {@code this} * @param projenrcJs Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenrcJs(final java.lang.Boolean projenrcJs) { this.options.projenrcJs(projenrcJs); return this; } /** * (experimental) Options for .projenrc.js. *

* Default: - default options *

* @return {@code this} * @param projenrcJsOptions Options for .projenrc.js. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenrcJsOptions(final io.github.cdklabs.projen.javascript.ProjenrcOptions projenrcJsOptions) { this.options.projenrcJsOptions(projenrcJsOptions); return this; } /** * (experimental) Version of projen to install. *

* Default: - Defaults to the latest version. *

* @return {@code this} * @param projenVersion Version of projen to install. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenVersion(final java.lang.String projenVersion) { this.options.projenVersion(projenVersion); return this; } /** * (experimental) Include a GitHub pull request template. *

* Default: true *

* @return {@code this} * @param pullRequestTemplate Include a GitHub pull request template. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder pullRequestTemplate(final java.lang.Boolean pullRequestTemplate) { this.options.pullRequestTemplate(pullRequestTemplate); return this; } /** * (experimental) The contents of the pull request template. *

* Default: - default content *

* @return {@code this} * @param pullRequestTemplateContents The contents of the pull request template. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder pullRequestTemplateContents(final java.util.List pullRequestTemplateContents) { this.options.pullRequestTemplateContents(pullRequestTemplateContents); return this; } /** * (experimental) Add release management to this project. *

* Default: - true (false for subprojects) *

* @return {@code this} * @param release Add release management to this project. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder release(final java.lang.Boolean release) { this.options.release(release); return this; } /** * (experimental) Automatically release to npm when new versions are introduced. *

* Default: false *

* @return {@code this} * @param releaseToNpm Automatically release to npm when new versions are introduced. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder releaseToNpm(final java.lang.Boolean releaseToNpm) { this.options.releaseToNpm(releaseToNpm); return this; } /** * (deprecated) DEPRECATED: renamed to `release`. *

* Default: - true if not a subproject *

* @return {@code this} * @deprecated see `release`. * @param releaseWorkflow DEPRECATED: renamed to `release`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated) @Deprecated public Builder releaseWorkflow(final java.lang.Boolean releaseWorkflow) { this.options.releaseWorkflow(releaseWorkflow); return this; } /** * (experimental) Workflow steps to use in order to bootstrap this repo. *

* Default: "yarn install --frozen-lockfile && yarn projen" *

* @return {@code this} * @param workflowBootstrapSteps Workflow steps to use in order to bootstrap this repo. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder workflowBootstrapSteps(final java.util.List workflowBootstrapSteps) { this.options.workflowBootstrapSteps(workflowBootstrapSteps); return this; } /** * (experimental) The git identity to use in workflows. *

* Default: - GitHub Actions *

* @return {@code this} * @param workflowGitIdentity The git identity to use in workflows. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder workflowGitIdentity(final io.github.cdklabs.projen.github.GitIdentity workflowGitIdentity) { this.options.workflowGitIdentity(workflowGitIdentity); return this; } /** * (experimental) The node version to use in GitHub workflows. *

* Default: - same as `minNodeVersion` *

* @return {@code this} * @param workflowNodeVersion The node version to use in GitHub workflows. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder workflowNodeVersion(final java.lang.String workflowNodeVersion) { this.options.workflowNodeVersion(workflowNodeVersion); return this; } /** * (experimental) Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). *

* Default: false *

* @return {@code this} * @param disableTsconfig Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder disableTsconfig(final java.lang.Boolean disableTsconfig) { this.options.disableTsconfig(disableTsconfig); return this; } /** * (experimental) Docgen by Typedoc. *

* Default: false *

* @return {@code this} * @param docgen Docgen by Typedoc. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder docgen(final java.lang.Boolean docgen) { this.options.docgen(docgen); return this; } /** * (experimental) Docs directory. *

* Default: "docs" *

* @return {@code this} * @param docsDirectory Docs directory. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder docsDirectory(final java.lang.String docsDirectory) { this.options.docsDirectory(docsDirectory); return this; } /** * (experimental) The .d.ts file that includes the type declarations for this module. *

* Default: - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) *

* @return {@code this} * @param entrypointTypes The .d.ts file that includes the type declarations for this module. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder entrypointTypes(final java.lang.String entrypointTypes) { this.options.entrypointTypes(entrypointTypes); return this; } /** * (experimental) Setup eslint. *

* Default: true *

* @return {@code this} * @param eslint Setup eslint. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder eslint(final java.lang.Boolean eslint) { this.options.eslint(eslint); return this; } /** * (experimental) Eslint options. *

* Default: - opinionated default options *

* @return {@code this} * @param eslintOptions Eslint options. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder eslintOptions(final io.github.cdklabs.projen.javascript.EslintOptions eslintOptions) { this.options.eslintOptions(eslintOptions); return this; } /** * (experimental) Typescript artifacts output directory. *

* Default: "lib" *

* @return {@code this} * @param libdir Typescript artifacts output directory. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder libdir(final java.lang.String libdir) { this.options.libdir(libdir); return this; } /** * (experimental) Use TypeScript for your projenrc file (`.projenrc.ts`). *

* Default: false *

* @return {@code this} * @param projenrcTs Use TypeScript for your projenrc file (`.projenrc.ts`). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenrcTs(final java.lang.Boolean projenrcTs) { this.options.projenrcTs(projenrcTs); return this; } /** * (experimental) Options for .projenrc.ts. *

* @return {@code this} * @param projenrcTsOptions Options for .projenrc.ts. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder projenrcTsOptions(final io.github.cdklabs.projen.typescript.ProjenrcOptions projenrcTsOptions) { this.options.projenrcTsOptions(projenrcTsOptions); return this; } /** * (experimental) Generate one-time sample in `src/` and `test/` if there are no files there. *

* Default: true *

* @return {@code this} * @param sampleCode Generate one-time sample in `src/` and `test/` if there are no files there. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder sampleCode(final java.lang.Boolean sampleCode) { this.options.sampleCode(sampleCode); return this; } /** * (experimental) Typescript sources directory. *

* Default: "src" *

* @return {@code this} * @param srcdir Typescript sources directory. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder srcdir(final java.lang.String srcdir) { this.options.srcdir(srcdir); return this; } /** * (experimental) Jest tests directory. Tests files should be named `xxx.test.ts`. *

* If this directory is under srcdir (e.g. src/test, src/__tests__), * then tests are going to be compiled into lib/ and executed as javascript. * If the test directory is outside of src, then we configure jest to * compile the code in-memory. *

* Default: "test" *

* @return {@code this} * @param testdir Jest tests directory. Tests files should be named `xxx.test.ts`. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder testdir(final java.lang.String testdir) { this.options.testdir(testdir); return this; } /** * (experimental) Custom TSConfig. *

* Default: - default options *

* @return {@code this} * @param tsconfig Custom TSConfig. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder tsconfig(final io.github.cdklabs.projen.javascript.TypescriptConfigOptions tsconfig) { this.options.tsconfig(tsconfig); return this; } /** * (experimental) Custom tsconfig options for the development tsconfig.json file (used for testing). *

* Default: - use the production tsconfig options *

* @return {@code this} * @param tsconfigDev Custom tsconfig options for the development tsconfig.json file (used for testing). This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder tsconfigDev(final io.github.cdklabs.projen.javascript.TypescriptConfigOptions tsconfigDev) { this.options.tsconfigDev(tsconfigDev); return this; } /** * (experimental) The name of the development tsconfig.json file. *

* Default: "tsconfig.dev.json" *

* @return {@code this} * @param tsconfigDevFile The name of the development tsconfig.json file. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder tsconfigDevFile(final java.lang.String tsconfigDevFile) { this.options.tsconfigDevFile(tsconfigDevFile); return this; } /** * (experimental) TypeScript version to use. *

* NOTE: Typescript is not semantically versioned and should remain on the * same minor, so we recommend using a ~ dependency (e.g. ~1.2.3). *

* Default: "latest" *

* @return {@code this} * @param typescriptVersion TypeScript version to use. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder typescriptVersion(final java.lang.String typescriptVersion) { this.options.typescriptVersion(typescriptVersion); return this; } /** * Whether to include an upgrade-deps task at the root of the monorepo which will upgrade all dependencies. *

* Default: true *

* @return {@code this} * @param monorepoUpgradeDeps Whether to include an upgrade-deps task at the root of the monorepo which will upgrade all dependencies. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder monorepoUpgradeDeps(final java.lang.Boolean monorepoUpgradeDeps) { this.options.monorepoUpgradeDeps(monorepoUpgradeDeps); return this; } /** * Monorepo Upgrade Deps options. *

* This is only used if monorepoUpgradeDeps is true. *

* Default: undefined *

* @return {@code this} * @param monorepoUpgradeDepsOptions Monorepo Upgrade Deps options. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder monorepoUpgradeDepsOptions(final software.aws.awsprototypingsdk.nxmonorepo.MonorepoUpgradeDepsOptions monorepoUpgradeDepsOptions) { this.options.monorepoUpgradeDepsOptions(monorepoUpgradeDepsOptions); return this; } /** * Configuration for NX. *

* @return {@code this} * @param nxConfig Configuration for NX. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder nxConfig(final software.aws.awsprototypingsdk.nxmonorepo.nx.WorkspaceConfig nxConfig) { this.options.nxConfig(nxConfig); return this; } /** * Configuration for workspace. *

* @return {@code this} * @param workspaceConfig Configuration for workspace. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder workspaceConfig(final software.aws.awsprototypingsdk.nxmonorepo.WorkspaceConfig workspaceConfig) { this.options.workspaceConfig(workspaceConfig); return this; } /** * @returns a newly built instance of {@link software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProject}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProject build() { return new software.aws.awsprototypingsdk.nxmonorepo.NxMonorepoProject( this.options.build() ); } } }