software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProject Maven / Gradle / Ivy
package software.aws.awsprototypingsdk.pipeline;
/**
* Synthesizes a Java Project with a CI/CD pipeline.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.71.0 (build f1f58ae)", date = "2022-12-14T02:22:20.431Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Jsii(module = software.aws.awsprototypingsdk.$Module.class, fqn = "aws-prototyping-sdk.pipeline.PDKPipelineJavaProject")
public class PDKPipelineJavaProject extends io.github.cdklabs.projen.awscdk.AwsCdkJavaApp {
protected PDKPipelineJavaProject(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected PDKPipelineJavaProject(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 PDKPipelineJavaProject(final @org.jetbrains.annotations.NotNull software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProjectOptions 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") });
}
/**
* A fluent builder for {@link software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProject}.
*/
@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.pipeline.PDKPipelineJavaProjectOptions.Builder options;
private Builder() {
this.options = new software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProjectOptions.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) The artifactId is generally the name that the project is known by.
*
* Although
* the groupId is important, people within the group will rarely mention the
* groupId in discussion (they are often all be the same ID, such as the
* MojoHaus project groupId: org.codehaus.mojo). It, along with the groupId,
* creates a key that separates this project from every other project in the
* world (at least, it should :) ). Along with the groupId, the artifactId
* fully defines the artifact's living quarters within the repository. In the
* case of the above project, my-project lives in
* $M2_REPO/org/codehaus/mojo/my-project.
*
* Default: "my-app"
*
* @return {@code this}
* @param artifactId The artifactId is generally the name that the project is known by. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder artifactId(final java.lang.String artifactId) {
this.options.artifactId(artifactId);
return this;
}
/**
* (experimental) This is generally unique amongst an organization or a project.
*
* For example,
* all core Maven artifacts do (well, should) live under the groupId
* org.apache.maven. Group ID's do not necessarily use the dot notation, for
* example, the junit project. Note that the dot-notated groupId does not have
* to correspond to the package structure that the project contains. It is,
* however, a good practice to follow. When stored within a repository, the
* group acts much like the Java packaging structure does in an operating
* system. The dots are replaced by OS specific directory separators (such as
* '/' in Unix) which becomes a relative directory structure from the base
* repository. In the example given, the org.codehaus.mojo group lives within
* the directory $M2_REPO/org/codehaus/mojo.
*
* Default: "org.acme"
*
* @return {@code this}
* @param groupId This is generally unique amongst an organization or a project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder groupId(final java.lang.String groupId) {
this.options.groupId(groupId);
return this;
}
/**
* (experimental) This is the last piece of the naming puzzle.
*
* groupId:artifactId denotes a
* single project but they cannot delineate which incarnation of that project
* we are talking about. Do we want the junit:junit of 2018 (version 4.12), or
* of 2007 (version 3.8.2)? In short: code changes, those changes should be
* versioned, and this element keeps those versions in line. It is also used
* within an artifact's repository to separate versions from each other.
* my-project version 1.0 files live in the directory structure
* $M2_REPO/org/codehaus/mojo/my-project/1.0.
*
* Default: "0.1.0"
*
* @return {@code this}
* @param version This is the last piece of the naming puzzle. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder version(final java.lang.String version) {
this.options.version(version);
return this;
}
/**
* (experimental) Description of a project is always good.
*
* Although this should not replace
* formal documentation, a quick comment to any readers of the POM is always
* helpful.
*
* Default: undefined
*
* @return {@code this}
* @param description Description of a project is always good. 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) Project packaging format.
*
* Default: "jar"
*
* @return {@code this}
* @param packaging Project packaging format. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder packaging(final java.lang.String packaging) {
this.options.packaging(packaging);
return this;
}
/**
* (experimental) The URL, like the name, is not required.
*
* This is a nice gesture for
* projects users, however, so that they know where the project lives.
*
* Default: undefined
*
* @return {@code this}
* @param url The URL, like the name, is not required. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder url(final java.lang.String url) {
this.options.url(url);
return this;
}
/**
* (experimental) Compile options.
*
* Default: - defaults
*
* @return {@code this}
* @param compileOptions Compile options. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder compileOptions(final io.github.cdklabs.projen.java.MavenCompileOptions compileOptions) {
this.options.compileOptions(compileOptions);
return this;
}
/**
* (experimental) List of runtime dependencies for this project.
*
* Dependencies use the format: <groupId>/<artifactId>@<semver>
*
* Additional dependencies can be added via project.addDependency()
.
*
* Default: []
*
* @return {@code this}
* @param deps List of runtime dependencies for this project. 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) Final artifact output directory.
*
* Default: "dist/java"
*
* @return {@code this}
* @param distdir Final artifact output directory. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder distdir(final java.lang.String distdir) {
this.options.distdir(distdir);
return this;
}
/**
* (experimental) Include junit tests.
*
* Default: true
*
* @return {@code this}
* @param junit Include junit tests. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder junit(final java.lang.Boolean junit) {
this.options.junit(junit);
return this;
}
/**
* (experimental) junit options.
*
* Default: - defaults
*
* @return {@code this}
* @param junitOptions junit options. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder junitOptions(final io.github.cdklabs.projen.java.JunitOptions junitOptions) {
this.options.junitOptions(junitOptions);
return this;
}
/**
* (experimental) Packaging options.
*
* Default: - defaults
*
* @return {@code this}
* @param packagingOptions Packaging options. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder packagingOptions(final io.github.cdklabs.projen.java.MavenPackagingOptions packagingOptions) {
this.options.packagingOptions(packagingOptions);
return this;
}
/**
* (experimental) Use projenrc in java.
*
* This will install projen
as a java dependency and will add a synth
task which
* will compile & execute main()
from src/main/java/projenrc.java
.
*
* Default: true
*
* @return {@code this}
* @param projenrcJava Use projenrc in java. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcJava(final java.lang.Boolean projenrcJava) {
this.options.projenrcJava(projenrcJava);
return this;
}
/**
* (experimental) Options related to projenrc in java.
*
* Default: - default options
*
* @return {@code this}
* @param projenrcJavaOptions Options related to projenrc in java. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcJavaOptions(final io.github.cdklabs.projen.java.ProjenrcOptions projenrcJavaOptions) {
this.options.projenrcJavaOptions(projenrcJavaOptions);
return this;
}
/**
* (experimental) List of test dependencies for this project.
*
* Dependencies use the format: <groupId>/<artifactId>@<semver>
*
* Additional dependencies can be added via project.addTestDependency()
.
*
* Default: []
*
* @return {@code this}
* @param testDeps List of test dependencies for this project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder testDeps(final java.util.List testDeps) {
this.options.testDeps(testDeps);
return this;
}
/**
* (experimental) Include sample code and test if the relevant directories don't exist.
*
* Default: true
*
* @return {@code this}
* @param sample Include sample code and test if the relevant directories don't exist. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sample(final java.lang.Boolean sample) {
this.options.sample(sample);
return this;
}
/**
* (experimental) The java package to use for the code sample.
*
* Default: "org.acme"
*
* @return {@code this}
* @param sampleJavaPackage The java package to use for the code sample. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sampleJavaPackage(final java.lang.String sampleJavaPackage) {
this.options.sampleJavaPackage(sampleJavaPackage);
return this;
}
/**
* (experimental) A command to execute before synthesis.
*
* This command will be called when
* running cdk synth
or when cdk watch
identifies a change in your source
* code before redeployment.
*
* Default: - no build command
*
* @return {@code this}
* @param buildCommand A command to execute before synthesis. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder buildCommand(final java.lang.String buildCommand) {
this.options.buildCommand(buildCommand);
return this;
}
/**
* (experimental) cdk.out directory.
*
* Default: "cdk.out"
*
* @return {@code this}
* @param cdkout cdk.out directory. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder cdkout(final java.lang.String cdkout) {
this.options.cdkout(cdkout);
return this;
}
/**
* (experimental) Additional context to include in `cdk.json`.
*
* Default: - no additional context
*
* @return {@code this}
* @param context Additional context to include in `cdk.json`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder context(final java.util.Map context) {
this.options.context(context);
return this;
}
/**
* (experimental) Include all feature flags in cdk.json.
*
* Default: true
*
* @return {@code this}
* @param featureFlags Include all feature flags in cdk.json. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder featureFlags(final java.lang.Boolean featureFlags) {
this.options.featureFlags(featureFlags);
return this;
}
/**
* (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.
*
* Default: ApprovalLevel.BROADENING
*
* @return {@code this}
* @param requireApproval 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. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder requireApproval(final io.github.cdklabs.projen.awscdk.ApprovalLevel requireApproval) {
this.options.requireApproval(requireApproval);
return this;
}
/**
* (experimental) Glob patterns to exclude from `cdk watch`.
*
* Default: []
*
* @return {@code this}
* @param watchExcludes Glob patterns to exclude from `cdk watch`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder watchExcludes(final java.util.List watchExcludes) {
this.options.watchExcludes(watchExcludes);
return this;
}
/**
* (experimental) Glob patterns to include in `cdk watch`.
*
* Default: []
*
* @return {@code this}
* @param watchIncludes Glob patterns to include in `cdk watch`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder watchIncludes(final java.util.List watchIncludes) {
this.options.watchIncludes(watchIncludes);
return this;
}
/**
* (experimental) Minimum version of the AWS CDK to depend on.
*
* Default: "2.1.0"
*
* @return {@code this}
* @param cdkVersion Minimum version of the AWS CDK to depend on. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder cdkVersion(final java.lang.String cdkVersion) {
this.options.cdkVersion(cdkVersion);
return this;
}
/**
* (deprecated) Warning: NodeJS only.
*
* Install the @aws-cdk/assert library?
*
* Default: - will be included by default for AWS CDK >= 1.0.0 < 2.0.0
*
* @return {@code this}
* @deprecated The
* @param cdkAssert Warning: NodeJS only. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder cdkAssert(final java.lang.Boolean cdkAssert) {
this.options.cdkAssert(cdkAssert);
return this;
}
/**
* (experimental) Install the assertions library?
*
* Only needed for CDK 1.x. If using CDK 2.x then
* assertions is already included in 'aws-cdk-lib'
*
* Default: - will be included by default for AWS CDK >= 1.111.0 < 2.0.0
*
* @return {@code this}
* @param cdkAssertions Install the assertions library?. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder cdkAssertions(final java.lang.Boolean cdkAssertions) {
this.options.cdkAssertions(cdkAssertions);
return this;
}
/**
* (deprecated) Which AWS CDKv1 modules this project requires.
*
* @return {@code this}
* @deprecated For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library)
* @param cdkDependencies Which AWS CDKv1 modules this project requires. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder cdkDependencies(final java.util.List cdkDependencies) {
this.options.cdkDependencies(cdkDependencies);
return this;
}
/**
* (deprecated) If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).
*
* This is to ensure that downstream consumers actually have your CDK dependencies installed
* when using npm < 7 or yarn, where peer dependencies are not automatically installed.
* If this is disabled, cdkDependencies
will be added to devDependencies
to ensure
* they are present during development.
*
* Note: this setting only applies to construct library projects
*
* Default: true
*
* @return {@code this}
* @deprecated Not supported in CDK v2.
* @param cdkDependenciesAsDeps If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder cdkDependenciesAsDeps(final java.lang.Boolean cdkDependenciesAsDeps) {
this.options.cdkDependenciesAsDeps(cdkDependenciesAsDeps);
return this;
}
/**
* (deprecated) AWS CDK modules required for testing.
*
* @return {@code this}
* @deprecated For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead
* @param cdkTestDependencies AWS CDK modules required for testing. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder cdkTestDependencies(final java.util.List cdkTestDependencies) {
this.options.cdkTestDependencies(cdkTestDependencies);
return this;
}
/**
* (experimental) Use pinned version instead of caret version for CDK.
*
* You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates.
* If you use experimental features this will let you define the moment you include breaking changes.
*
* @return {@code this}
* @param cdkVersionPinning Use pinned version instead of caret version for CDK. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder cdkVersionPinning(final java.lang.Boolean cdkVersionPinning) {
this.options.cdkVersionPinning(cdkVersionPinning);
return this;
}
/**
* (experimental) Minimum version of the `constructs` library to depend on.
*
* Default: - for CDK 1.x the default is "3.2.27", for CDK 2.x the default is
* "10.0.5".
*
* @return {@code this}
* @param constructsVersion Minimum version of the `constructs` library to depend on. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder constructsVersion(final java.lang.String constructsVersion) {
this.options.constructsVersion(constructsVersion);
return this;
}
/**
* (experimental) The name of the Java class with the static `main()` method.
*
* This method
* should call app.synth()
on the CDK app.
*
* Default: "org.acme.MyApp"
*
* @return {@code this}
* @param mainClass The name of the Java class with the static `main()` method. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder mainClass(final java.lang.String mainClass) {
this.options.mainClass(mainClass);
return this;
}
/**
* @returns a newly built instance of {@link software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProject}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProject build() {
return new software.aws.awsprototypingsdk.pipeline.PDKPipelineJavaProject(
this.options.build()
);
}
}
}