software.aws.awsprototypingsdk.pipeline.PDKPipelinePyProject Maven / Gradle / Ivy
package software.aws.awsprototypingsdk.pipeline;
/**
* Synthesizes a Python Project with a CI/CD pipeline.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.73.0 (build 6faeda3)", date = "2023-01-24T23:29:37.815Z")
@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.PDKPipelinePyProject")
public class PDKPipelinePyProject extends io.github.cdklabs.projen.awscdk.AwsCdkPythonApp {
protected PDKPipelinePyProject(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected PDKPipelinePyProject(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 PDKPipelinePyProject(final @org.jetbrains.annotations.NotNull software.aws.awsprototypingsdk.pipeline.PDKPipelinePyProjectOptions 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.PDKPipelinePyProject}.
*/
@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.PDKPipelinePyProjectOptions.Builder options;
private Builder() {
this.options = new software.aws.awsprototypingsdk.pipeline.PDKPipelinePyProjectOptions.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) Author's e-mail.
*
* Default: $GIT_USER_EMAIL
*
* @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.
*
* Default: $GIT_USER_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) Version of the package.
*
* Default: "0.1.0"
*
* @return {@code this}
* @param version Version of the package. 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) A list of PyPI trove classifiers that describe the project.
*
* @return {@code this}
* @see https://pypi.org/classifiers/
* @param classifiers A list of PyPI trove classifiers that describe the project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder classifiers(final java.util.List classifiers) {
this.options.classifiers(classifiers);
return this;
}
/**
* (experimental) A short description of the package.
*
* @return {@code this}
* @param description A short description 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) A URL to the website of the project.
*
* @return {@code this}
* @param homepage A URL to the website of the project. 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) License of this package as an SPDX identifier.
*
* @return {@code this}
* @param license License of this package as an 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) Package name.
*
* @return {@code this}
* @param packageName Package name. 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) Additional options to set for poetry if using poetry.
*
* @return {@code this}
* @param poetryOptions Additional options to set for poetry if using poetry. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder poetryOptions(final io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps poetryOptions) {
this.options.poetryOptions(poetryOptions);
return this;
}
/**
* (experimental) Additional fields to pass in the setup() function if using setuptools.
*
* @return {@code this}
* @param setupConfig Additional fields to pass in the setup() function if using setuptools. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder setupConfig(final java.util.Map setupConfig) {
this.options.setupConfig(setupConfig);
return this;
}
/**
* (experimental) Name of the python package as used in imports and filenames.
*
* Must only consist of alphanumeric characters and underscores.
*
* Default: $PYTHON_MODULE_NAME
*
* @return {@code this}
* @param moduleName Name of the python package as used in imports and filenames. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder moduleName(final java.lang.String moduleName) {
this.options.moduleName(moduleName);
return this;
}
/**
* (experimental) List of runtime dependencies for this project.
*
* Dependencies use the format: <module>@<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) List of dev dependencies for this project.
*
* Dependencies use the format: <module>@<semver>
*
* Additional dependencies can be added via project.addDevDependency()
.
*
* Default: []
*
* @return {@code this}
* @param devDeps List of dev dependencies for this project. 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) Use pip with a requirements.txt file to track project dependencies.
*
* Default: true
*
* @return {@code this}
* @param pip Use pip with a requirements.txt file to track project dependencies. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder pip(final java.lang.Boolean pip) {
this.options.pip(pip);
return this;
}
/**
* (experimental) Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing.
*
* Default: false
*
* @return {@code this}
* @param poetry Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder poetry(final java.lang.Boolean poetry) {
this.options.poetry(poetry);
return this;
}
/**
* (experimental) Use projenrc in javascript.
*
* This will install projen
as a JavaScript dependency and add a synth
* task which will run .projenrc.js
.
*
* Default: false
*
* @return {@code this}
* @param projenrcJs Use projenrc in javascript. 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 related to projenrc in JavaScript.
*
* Default: - default options
*
* @return {@code this}
* @param projenrcJsOptions Options related to projenrc in JavaScript. 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) Use projenrc in Python.
*
* This will install projen
as a Python dependency and add a synth
* task which will run .projenrc.py
.
*
* Default: true
*
* @return {@code this}
* @param projenrcPython Use projenrc in Python. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcPython(final java.lang.Boolean projenrcPython) {
this.options.projenrcPython(projenrcPython);
return this;
}
/**
* (experimental) Options related to projenrc in python.
*
* Default: - default options
*
* @return {@code this}
* @param projenrcPythonOptions Options related to projenrc in python. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcPythonOptions(final io.github.cdklabs.projen.python.ProjenrcOptions projenrcPythonOptions) {
this.options.projenrcPythonOptions(projenrcPythonOptions);
return this;
}
/**
* (experimental) Include pytest tests.
*
* Default: true
*
* @return {@code this}
* @param pytest Include pytest tests. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder pytest(final java.lang.Boolean pytest) {
this.options.pytest(pytest);
return this;
}
/**
* (experimental) pytest options.
*
* Default: - defaults
*
* @return {@code this}
* @param pytestOptions pytest options. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder pytestOptions(final io.github.cdklabs.projen.python.PytestOptions pytestOptions) {
this.options.pytestOptions(pytestOptions);
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) Use setuptools with a setup.py script for packaging and publishing.
*
* Default: - true if the project type is library
*
* @return {@code this}
* @param setuptools Use setuptools with a setup.py script for packaging and publishing. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder setuptools(final java.lang.Boolean setuptools) {
this.options.setuptools(setuptools);
return this;
}
/**
* (experimental) Use venv to manage a virtual environment for installing dependencies inside.
*
* Default: true
*
* @return {@code this}
* @param venv Use venv to manage a virtual environment for installing dependencies inside. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder venv(final java.lang.Boolean venv) {
this.options.venv(venv);
return this;
}
/**
* (experimental) Venv options.
*
* Default: - defaults
*
* @return {@code this}
* @param venvOptions Venv options. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder venvOptions(final io.github.cdklabs.projen.python.VenvOptions venvOptions) {
this.options.venvOptions(venvOptions);
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 CDK app's entrypoint (relative to the source directory, which is "src" by default).
*
* Default: "app.py"
*
* @return {@code this}
* @param appEntrypoint The CDK app's entrypoint (relative to the source directory, which is "src" by default). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder appEntrypoint(final java.lang.String appEntrypoint) {
this.options.appEntrypoint(appEntrypoint);
return this;
}
/**
* (experimental) Python sources directory.
*
* Default: "tests"
*
* @return {@code this}
* @param testdir Python sources directory. 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;
}
/**
* @returns a newly built instance of {@link software.aws.awsprototypingsdk.pipeline.PDKPipelinePyProject}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public software.aws.awsprototypingsdk.pipeline.PDKPipelinePyProject build() {
return new software.aws.awsprototypingsdk.pipeline.PDKPipelinePyProject(
this.options.build()
);
}
}
}