Class ProjectProps.Builder
- All Implemented Interfaces:
software.amazon.jsii.Builder<ProjectProps>
- Enclosing interface:
ProjectProps
ProjectProps
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionallowAllOutbound
(Boolean allowAllOutbound) Sets the value ofCommonProjectProps.getAllowAllOutbound()
artifacts
(IArtifacts artifacts) Sets the value ofProjectProps.getArtifacts()
Sets the value ofCommonProjectProps.getBadge()
build()
Builds the configured instance.Sets the value ofCommonProjectProps.getBuildSpec()
Sets the value ofCommonProjectProps.getCache()
checkSecretsInPlainTextEnvVariables
(Boolean checkSecretsInPlainTextEnvVariables) Sets the value ofCommonProjectProps.getCheckSecretsInPlainTextEnvVariables()
concurrentBuildLimit
(Number concurrentBuildLimit) Sets the value ofCommonProjectProps.getConcurrentBuildLimit()
description
(String description) Sets the value ofCommonProjectProps.getDescription()
encryptionKey
(IKey encryptionKey) Sets the value ofCommonProjectProps.getEncryptionKey()
environment
(BuildEnvironment environment) Sets the value ofCommonProjectProps.getEnvironment()
environmentVariables
(Map<String, ? extends BuildEnvironmentVariable> environmentVariables) Sets the value ofCommonProjectProps.getEnvironmentVariables()
fileSystemLocations
(List<? extends IFileSystemLocation> fileSystemLocations) Sets the value ofCommonProjectProps.getFileSystemLocations()
grantReportGroupPermissions
(Boolean grantReportGroupPermissions) Sets the value ofCommonProjectProps.getGrantReportGroupPermissions()
logging
(LoggingOptions logging) Sets the value ofCommonProjectProps.getLogging()
projectName
(String projectName) Sets the value ofCommonProjectProps.getProjectName()
queuedTimeout
(Duration queuedTimeout) Sets the value ofCommonProjectProps.getQueuedTimeout()
Sets the value ofCommonProjectProps.getRole()
secondaryArtifacts
(List<? extends IArtifacts> secondaryArtifacts) Sets the value ofProjectProps.getSecondaryArtifacts()
secondarySources
(List<? extends ISource> secondarySources) Sets the value ofProjectProps.getSecondarySources()
securityGroups
(List<? extends ISecurityGroup> securityGroups) Sets the value ofCommonProjectProps.getSecurityGroups()
Sets the value ofProjectProps.getSource()
ssmSessionPermissions
(Boolean ssmSessionPermissions) Sets the value ofCommonProjectProps.getSsmSessionPermissions()
subnetSelection
(SubnetSelection subnetSelection) Sets the value ofCommonProjectProps.getSubnetSelection()
Sets the value ofCommonProjectProps.getTimeout()
visibility
(ProjectVisibility visibility) Sets the value ofCommonProjectProps.getVisibility()
Sets the value ofCommonProjectProps.getVpc()
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
artifacts
Sets the value ofProjectProps.getArtifacts()
- Parameters:
artifacts
- Defines where build artifacts will be stored. Could be: PipelineBuildArtifacts, NoArtifacts and S3Artifacts.- Returns:
this
-
secondaryArtifacts
@Stability(Stable) public ProjectProps.Builder secondaryArtifacts(List<? extends IArtifacts> secondaryArtifacts) Sets the value ofProjectProps.getSecondaryArtifacts()
- Parameters:
secondaryArtifacts
- The secondary artifacts for the Project. Can also be added after the Project has been created by using theProject#addSecondaryArtifact
method.- Returns:
this
-
secondarySources
@Stability(Stable) public ProjectProps.Builder secondarySources(List<? extends ISource> secondarySources) Sets the value ofProjectProps.getSecondarySources()
- Parameters:
secondarySources
- The secondary sources for the Project. Can be also added after the Project has been created by using theProject#addSecondarySource
method.- Returns:
this
-
source
Sets the value ofProjectProps.getSource()
- Parameters:
source
- The source of the build. Note: ifNoSource
is given as the source, then you need to provide an explicitbuildSpec
.- Returns:
this
-
allowAllOutbound
Sets the value ofCommonProjectProps.getAllowAllOutbound()
- Parameters:
allowAllOutbound
- Whether to allow the CodeBuild to send all network traffic. If set to false, you must individually add traffic rules to allow the CodeBuild project to connect to network targets.Only used if 'vpc' is supplied.
- Returns:
this
-
badge
Sets the value ofCommonProjectProps.getBadge()
- Parameters:
badge
- Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge. For more information, see Build Badges Sample in the AWS CodeBuild User Guide.- Returns:
this
-
buildSpec
Sets the value ofCommonProjectProps.getBuildSpec()
- Parameters:
buildSpec
- Filename or contents of buildspec in JSON format.- Returns:
this
-
cache
Sets the value ofCommonProjectProps.getCache()
- Parameters:
cache
- Caching strategy to use.- Returns:
this
-
checkSecretsInPlainTextEnvVariables
@Stability(Stable) public ProjectProps.Builder checkSecretsInPlainTextEnvVariables(Boolean checkSecretsInPlainTextEnvVariables) Sets the value ofCommonProjectProps.getCheckSecretsInPlainTextEnvVariables()
- Parameters:
checkSecretsInPlainTextEnvVariables
- Whether to check for the presence of any secrets in the environment variables of the default type, BuildEnvironmentVariableType.PLAINTEXT. Since using a secret for the value of that kind of variable would result in it being displayed in plain text in the AWS Console, the construct will throw an exception if it detects a secret was passed there. Pass this property as false if you want to skip this validation, and keep using a secret in a plain text environment variable.- Returns:
this
-
concurrentBuildLimit
Sets the value ofCommonProjectProps.getConcurrentBuildLimit()
- Parameters:
concurrentBuildLimit
- Maximum number of concurrent builds. Minimum value is 1 and maximum is account build limit.- Returns:
this
-
description
Sets the value ofCommonProjectProps.getDescription()
- Parameters:
description
- A description of the project. Use the description to identify the purpose of the project.- Returns:
this
-
encryptionKey
Sets the value ofCommonProjectProps.getEncryptionKey()
- Parameters:
encryptionKey
- Encryption key to use to read and write artifacts.- Returns:
this
-
environment
Sets the value ofCommonProjectProps.getEnvironment()
- Parameters:
environment
- Build environment to use for the build.- Returns:
this
-
environmentVariables
@Stability(Stable) public ProjectProps.Builder environmentVariables(Map<String, ? extends BuildEnvironmentVariable> environmentVariables) Sets the value ofCommonProjectProps.getEnvironmentVariables()
- Parameters:
environmentVariables
- Additional environment variables to add to the build environment.- Returns:
this
-
fileSystemLocations
@Stability(Stable) public ProjectProps.Builder fileSystemLocations(List<? extends IFileSystemLocation> fileSystemLocations) Sets the value ofCommonProjectProps.getFileSystemLocations()
- Parameters:
fileSystemLocations
- An ProjectFileSystemLocation objects for a CodeBuild build project. A ProjectFileSystemLocation object specifies the identifier, location, mountOptions, mountPoint, and type of a file system created using Amazon Elastic File System.- Returns:
this
-
grantReportGroupPermissions
@Stability(Stable) public ProjectProps.Builder grantReportGroupPermissions(Boolean grantReportGroupPermissions) Sets the value ofCommonProjectProps.getGrantReportGroupPermissions()
- Parameters:
grantReportGroupPermissions
- Add permissions to this project's role to create and use test report groups with name starting with the name of this project. That is the standard report group that gets created when a simple name (in contrast to an ARN) is used in the 'reports' section of the buildspec of this project. This is usually harmless, but you can turn these off if you don't plan on using test reports in this project.- Returns:
this
-
logging
Sets the value ofCommonProjectProps.getLogging()
- Parameters:
logging
- Information about logs for the build project. A project can create logs in Amazon CloudWatch Logs, an S3 bucket, or both.- Returns:
this
-
projectName
Sets the value ofCommonProjectProps.getProjectName()
- Parameters:
projectName
- The physical, human-readable name of the CodeBuild Project.- Returns:
this
-
queuedTimeout
Sets the value ofCommonProjectProps.getQueuedTimeout()
- Parameters:
queuedTimeout
- The number of minutes after which AWS CodeBuild stops the build if it's still in queue. For valid values, see the timeoutInMinutes field in the AWS CodeBuild User Guide.- Returns:
this
-
role
Sets the value ofCommonProjectProps.getRole()
- Parameters:
role
- Service Role to assume while running the build.- Returns:
this
-
securityGroups
@Stability(Stable) public ProjectProps.Builder securityGroups(List<? extends ISecurityGroup> securityGroups) Sets the value ofCommonProjectProps.getSecurityGroups()
- Parameters:
securityGroups
- What security group to associate with the codebuild project's network interfaces. If no security group is identified, one will be created automatically.Only used if 'vpc' is supplied.
- Returns:
this
-
ssmSessionPermissions
Sets the value ofCommonProjectProps.getSsmSessionPermissions()
- Parameters:
ssmSessionPermissions
- Add the permissions necessary for debugging builds with SSM Session Manager. If the following prerequisites have been met:- The necessary permissions have been added by setting this flag to true.
- The build image has the SSM agent installed (true for default CodeBuild images).
- The build is started with debugSessionEnabled set to true.
Then the build container can be paused and inspected using Session Manager by invoking the
codebuild-breakpoint
command somewhere during the build.codebuild-breakpoint
commands will be ignored if the build is not started withdebugSessionEnabled=true
.- Returns:
this
-
subnetSelection
Sets the value ofCommonProjectProps.getSubnetSelection()
- Parameters:
subnetSelection
- Where to place the network interfaces within the VPC. To access AWS services, your CodeBuild project needs to be in one of the following types of subnets:- Subnets with access to the internet (of type PRIVATE_WITH_EGRESS).
- Private subnets unconnected to the internet, but with VPC endpoints for the necessary services.
If you don't specify a subnet selection, the default behavior is to use PRIVATE_WITH_EGRESS subnets first if they exist, then PRIVATE_WITHOUT_EGRESS, and finally PUBLIC subnets. If your VPC doesn't have PRIVATE_WITH_EGRESS subnets but you need AWS service access, add VPC Endpoints to your private subnets.
- Returns:
this
-
timeout
Sets the value ofCommonProjectProps.getTimeout()
- Parameters:
timeout
- The number of minutes after which AWS CodeBuild stops the build if it's not complete. For valid values, see the timeoutInMinutes field in the AWS CodeBuild User Guide.- Returns:
this
-
visibility
Sets the value ofCommonProjectProps.getVisibility()
- Parameters:
visibility
- Specifies the visibility of the project's builds.- Returns:
this
-
vpc
Sets the value ofCommonProjectProps.getVpc()
- Parameters:
vpc
- VPC network to place codebuild network interfaces. Specify this if the codebuild project needs to access resources in a VPC.- Returns:
this
-
build
Builds the configured instance.- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<ProjectProps>
- Returns:
- a new instance of
ProjectProps
- Throws:
NullPointerException
- if any required attribute was not provided
-