/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.codebuild.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateProjectRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The name of the build project. *
*/ private String name; /** ** A description that makes the build project easy to identify. *
*/ private String description; /** ** Information about the build input source code for the build project. *
*/ private ProjectSource source; /** *
     * An array of ProjectSource objects.
     * 
* A version of the build input to be built for this project. If not specified, the latest version is used. If * specified, it must be one of: *
** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the
     * source code you want to build. If a pull request ID is specified, it must use the format
     * pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's
     * HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     * 
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you * want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default * branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     * If sourceVersion is specified at the build level, then that version takes precedence over this
     * sourceVersion (at the project level).
     * 
* For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *
*/ private String sourceVersion; /** *
     * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at
     * the build level, then they take precedence over these secondarySourceVersions (at the project
     * level).
     * 
* Information about the build output artifacts for the build project. *
*/ private ProjectArtifacts artifacts; /** *
     * An array of ProjectArtifacts objects.
     * 
* Stores recently used information so that it can be quickly accessed at a later time. *
*/ private ProjectCache cache; /** ** Information about the build environment for the build project. *
*/ private ProjectEnvironment environment; /** ** The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf * of the Amazon Web Services account. *
*/ private String serviceRole; /** ** How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that has not * been marked as completed. The default is 60 minutes. *
*/ private Integer timeoutInMinutes; /** ** The number of minutes a build is allowed to be queued before it times out. *
*/ private Integer queuedTimeoutInMinutes; /** ** The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. *
** You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to * that key. *
*
     * You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the
     * format alias/<alias-name>).
     * 
* A list of tag key and value pairs associated with this build project. *
** These tags are available for use by Amazon Web Services services that support CodeBuild build project tags. *
*/ private java.util.List* VpcConfig enables CodeBuild to access resources in an Amazon VPC. *
*/ private VpcConfig vpcConfig; /** ** Set this to true to generate a publicly accessible URL for your project's build badge. *
*/ private Boolean badgeEnabled; /** ** Information about logs for the build project. These can be logs in CloudWatch Logs, logs uploaded to a specified * S3 bucket, or both. *
*/ private LogsConfig logsConfig; /** *
     * An array of 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.
     * 
* A ProjectBuildBatchConfig object that defines the batch build options for the project. *
*/ private ProjectBuildBatchConfig buildBatchConfig; /** ** The maximum number of concurrent builds that are allowed for this project. *
** New builds are only started if the current number of builds is less than or equal to this limit. If the current * build count meets this limit, new builds are throttled and are not run. *
*/ private Integer concurrentBuildLimit; /** ** The name of the build project. *
* * @param name * The name of the build project. */ public void setName(String name) { this.name = name; } /** ** The name of the build project. *
* * @return The name of the build project. */ public String getName() { return this.name; } /** ** The name of the build project. *
* * @param name * The name of the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withName(String name) { setName(name); return this; } /** ** A description that makes the build project easy to identify. *
* * @param description * A description that makes the build project easy to identify. */ public void setDescription(String description) { this.description = description; } /** ** A description that makes the build project easy to identify. *
* * @return A description that makes the build project easy to identify. */ public String getDescription() { return this.description; } /** ** A description that makes the build project easy to identify. *
* * @param description * A description that makes the build project easy to identify. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withDescription(String description) { setDescription(description); return this; } /** ** Information about the build input source code for the build project. *
* * @param source * Information about the build input source code for the build project. */ public void setSource(ProjectSource source) { this.source = source; } /** ** Information about the build input source code for the build project. *
* * @return Information about the build input source code for the build project. */ public ProjectSource getSource() { return this.source; } /** ** Information about the build input source code for the build project. *
* * @param source * Information about the build input source code for the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withSource(ProjectSource source) { setSource(source); return this; } /** *
     * An array of ProjectSource objects.
     * 
ProjectSource objects.
     */
    public java.util.List
     * An array of ProjectSource objects.
     * 
ProjectSource objects.
     */
    public void setSecondarySources(java.util.Collection
     * An array of ProjectSource objects.
     * 
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSecondarySources(java.util.Collection)} or {@link #withSecondarySources(java.util.Collection)} if you * want to override the existing values. *
* * @param secondarySources * An array ofProjectSource objects.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withSecondarySources(ProjectSource... secondarySources) {
        if (this.secondarySources == null) {
            setSecondarySources(new java.util.ArrayList
     * An array of ProjectSource objects.
     * 
ProjectSource objects.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withSecondarySources(java.util.Collection* A version of the build input to be built for this project. If not specified, the latest version is used. If * specified, it must be one of: *
** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the
     * source code you want to build. If a pull request ID is specified, it must use the format
     * pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's
     * HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     * 
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you * want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default * branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     * If sourceVersion is specified at the build level, then that version takes precedence over this
     * sourceVersion (at the project level).
     * 
* For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *
* * @param sourceVersion * A version of the build input to be built for this project. If not specified, the latest version is used. * If specified, it must be one of: ** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     *        For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of
     *        the source code you want to build. If a pull request ID is specified, it must use the format
     *        pr/pull-request-ID (for example pr/25). If a branch name is specified, the
     *        branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     *        
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code * you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, * the default branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     *        If sourceVersion is specified at the build level, then that version takes precedence over
     *        this sourceVersion (at the project level).
     *        
* For more information, see Source Version * Sample with CodeBuild in the CodeBuild User Guide. */ public void setSourceVersion(String sourceVersion) { this.sourceVersion = sourceVersion; } /** *
* A version of the build input to be built for this project. If not specified, the latest version is used. If * specified, it must be one of: *
** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the
     * source code you want to build. If a pull request ID is specified, it must use the format
     * pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's
     * HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     * 
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you * want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default * branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     * If sourceVersion is specified at the build level, then that version takes precedence over this
     * sourceVersion (at the project level).
     * 
* For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *
* * @return A version of the build input to be built for this project. If not specified, the latest version is used. * If specified, it must be one of: ** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     *         For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of
     *         the source code you want to build. If a pull request ID is specified, it must use the format
     *         pr/pull-request-ID (for example pr/25). If a branch name is specified, the
     *         branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     *         
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code * you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, * the default branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     *         If sourceVersion is specified at the build level, then that version takes precedence over
     *         this sourceVersion (at the project level).
     *         
* For more information, see Source Version * Sample with CodeBuild in the CodeBuild User Guide. */ public String getSourceVersion() { return this.sourceVersion; } /** *
* A version of the build input to be built for this project. If not specified, the latest version is used. If * specified, it must be one of: *
** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the
     * source code you want to build. If a pull request ID is specified, it must use the format
     * pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's
     * HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     * 
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you * want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default * branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     * If sourceVersion is specified at the build level, then that version takes precedence over this
     * sourceVersion (at the project level).
     * 
* For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *
* * @param sourceVersion * A version of the build input to be built for this project. If not specified, the latest version is used. * If specified, it must be one of: ** For CodeCommit: the commit ID, branch, or Git tag to use. *
*
     *        For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of
     *        the source code you want to build. If a pull request ID is specified, it must use the format
     *        pr/pull-request-ID (for example pr/25). If a branch name is specified, the
     *        branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used.
     *        
* For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code * you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, * the default branch's HEAD commit ID is used. *
** For Amazon S3: the version ID of the object that represents the build input ZIP file to use. *
*
     *        If sourceVersion is specified at the build level, then that version takes precedence over
     *        this sourceVersion (at the project level).
     *        
* For more information, see Source Version * Sample with CodeBuild in the CodeBuild User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withSourceVersion(String sourceVersion) { setSourceVersion(sourceVersion); return this; } /** *
     * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at
     * the build level, then they take precedence over these secondarySourceVersions (at the project
     * level).
     * 
ProjectSourceVersion objects. If secondarySourceVersions is
     *         specified at the build level, then they take precedence over these secondarySourceVersions
     *         (at the project level).
     */
    public java.util.List
     * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at
     * the build level, then they take precedence over these secondarySourceVersions (at the project
     * level).
     * 
ProjectSourceVersion objects. If secondarySourceVersions is
     *        specified at the build level, then they take precedence over these secondarySourceVersions
     *        (at the project level).
     */
    public void setSecondarySourceVersions(java.util.Collection
     * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at
     * the build level, then they take precedence over these secondarySourceVersions (at the project
     * level).
     * 
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSecondarySourceVersions(java.util.Collection)} or * {@link #withSecondarySourceVersions(java.util.Collection)} if you want to override the existing values. *
* * @param secondarySourceVersions * An array ofProjectSourceVersion objects. If secondarySourceVersions is
     *        specified at the build level, then they take precedence over these secondarySourceVersions
     *        (at the project level).
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withSecondarySourceVersions(ProjectSourceVersion... secondarySourceVersions) {
        if (this.secondarySourceVersions == null) {
            setSecondarySourceVersions(new java.util.ArrayList
     * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at
     * the build level, then they take precedence over these secondarySourceVersions (at the project
     * level).
     * 
ProjectSourceVersion objects. If secondarySourceVersions is
     *        specified at the build level, then they take precedence over these secondarySourceVersions
     *        (at the project level).
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withSecondarySourceVersions(java.util.Collection* Information about the build output artifacts for the build project. *
* * @param artifacts * Information about the build output artifacts for the build project. */ public void setArtifacts(ProjectArtifacts artifacts) { this.artifacts = artifacts; } /** ** Information about the build output artifacts for the build project. *
* * @return Information about the build output artifacts for the build project. */ public ProjectArtifacts getArtifacts() { return this.artifacts; } /** ** Information about the build output artifacts for the build project. *
* * @param artifacts * Information about the build output artifacts for the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withArtifacts(ProjectArtifacts artifacts) { setArtifacts(artifacts); return this; } /** *
     * An array of ProjectArtifacts objects.
     * 
ProjectArtifacts objects.
     */
    public java.util.List
     * An array of ProjectArtifacts objects.
     * 
ProjectArtifacts objects.
     */
    public void setSecondaryArtifacts(java.util.Collection
     * An array of ProjectArtifacts objects.
     * 
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSecondaryArtifacts(java.util.Collection)} or {@link #withSecondaryArtifacts(java.util.Collection)} if * you want to override the existing values. *
* * @param secondaryArtifacts * An array ofProjectArtifacts objects.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withSecondaryArtifacts(ProjectArtifacts... secondaryArtifacts) {
        if (this.secondaryArtifacts == null) {
            setSecondaryArtifacts(new java.util.ArrayList
     * An array of ProjectArtifacts objects.
     * 
ProjectArtifacts objects.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withSecondaryArtifacts(java.util.Collection* Stores recently used information so that it can be quickly accessed at a later time. *
* * @param cache * Stores recently used information so that it can be quickly accessed at a later time. */ public void setCache(ProjectCache cache) { this.cache = cache; } /** ** Stores recently used information so that it can be quickly accessed at a later time. *
* * @return Stores recently used information so that it can be quickly accessed at a later time. */ public ProjectCache getCache() { return this.cache; } /** ** Stores recently used information so that it can be quickly accessed at a later time. *
* * @param cache * Stores recently used information so that it can be quickly accessed at a later time. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withCache(ProjectCache cache) { setCache(cache); return this; } /** ** Information about the build environment for the build project. *
* * @param environment * Information about the build environment for the build project. */ public void setEnvironment(ProjectEnvironment environment) { this.environment = environment; } /** ** Information about the build environment for the build project. *
* * @return Information about the build environment for the build project. */ public ProjectEnvironment getEnvironment() { return this.environment; } /** ** Information about the build environment for the build project. *
* * @param environment * Information about the build environment for the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withEnvironment(ProjectEnvironment environment) { setEnvironment(environment); return this; } /** ** The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf * of the Amazon Web Services account. *
* * @param serviceRole * The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on * behalf of the Amazon Web Services account. */ public void setServiceRole(String serviceRole) { this.serviceRole = serviceRole; } /** ** The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf * of the Amazon Web Services account. *
* * @return The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on * behalf of the Amazon Web Services account. */ public String getServiceRole() { return this.serviceRole; } /** ** The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf * of the Amazon Web Services account. *
* * @param serviceRole * The ARN of the IAM role that enables CodeBuild to interact with dependent Amazon Web Services services on * behalf of the Amazon Web Services account. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withServiceRole(String serviceRole) { setServiceRole(serviceRole); return this; } /** ** How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that has not * been marked as completed. The default is 60 minutes. *
* * @param timeoutInMinutes * How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that * has not been marked as completed. The default is 60 minutes. */ public void setTimeoutInMinutes(Integer timeoutInMinutes) { this.timeoutInMinutes = timeoutInMinutes; } /** ** How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that has not * been marked as completed. The default is 60 minutes. *
* * @return How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that * has not been marked as completed. The default is 60 minutes. */ public Integer getTimeoutInMinutes() { return this.timeoutInMinutes; } /** ** How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that has not * been marked as completed. The default is 60 minutes. *
* * @param timeoutInMinutes * How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that * has not been marked as completed. The default is 60 minutes. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withTimeoutInMinutes(Integer timeoutInMinutes) { setTimeoutInMinutes(timeoutInMinutes); return this; } /** ** The number of minutes a build is allowed to be queued before it times out. *
* * @param queuedTimeoutInMinutes * The number of minutes a build is allowed to be queued before it times out. */ public void setQueuedTimeoutInMinutes(Integer queuedTimeoutInMinutes) { this.queuedTimeoutInMinutes = queuedTimeoutInMinutes; } /** ** The number of minutes a build is allowed to be queued before it times out. *
* * @return The number of minutes a build is allowed to be queued before it times out. */ public Integer getQueuedTimeoutInMinutes() { return this.queuedTimeoutInMinutes; } /** ** The number of minutes a build is allowed to be queued before it times out. *
* * @param queuedTimeoutInMinutes * The number of minutes a build is allowed to be queued before it times out. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withQueuedTimeoutInMinutes(Integer queuedTimeoutInMinutes) { setQueuedTimeoutInMinutes(queuedTimeoutInMinutes); return this; } /** ** The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. *
** You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to * that key. *
*
     * You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the
     * format alias/<alias-name>).
     * 
* You can use a cross-account KMS key to encrypt the build output artifacts if your service role has * permission to that key. *
*
     *        You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using
     *        the format alias/<alias-name>).
     */
    public void setEncryptionKey(String encryptionKey) {
        this.encryptionKey = encryptionKey;
    }
    /**
     * 
* The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. *
** You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to * that key. *
*
     * You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the
     * format alias/<alias-name>).
     * 
* You can use a cross-account KMS key to encrypt the build output artifacts if your service role has * permission to that key. *
*
     *         You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using
     *         the format alias/<alias-name>).
     */
    public String getEncryptionKey() {
        return this.encryptionKey;
    }
    /**
     * 
* The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. *
** You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to * that key. *
*
     * You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the
     * format alias/<alias-name>).
     * 
* You can use a cross-account KMS key to encrypt the build output artifacts if your service role has * permission to that key. *
*
     *        You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using
     *        the format alias/<alias-name>).
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withEncryptionKey(String encryptionKey) {
        setEncryptionKey(encryptionKey);
        return this;
    }
    /**
     * 
* A list of tag key and value pairs associated with this build project. *
** These tags are available for use by Amazon Web Services services that support CodeBuild build project tags. *
* * @return A list of tag key and value pairs associated with this build project. *
     *         These tags are available for use by Amazon Web Services services that support CodeBuild build project
     *         tags.
     */
    public java.util.List 
     * A list of tag key and value pairs associated with this build project.
     *  
     * These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.
     * 
     *        These tags are available for use by Amazon Web Services services that support CodeBuild build project
     *        tags.
     */
    public void setTags(java.util.Collection 
     * A list of tag key and value pairs associated with this build project.
     *  
     * These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.
     *  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the
     * existing values.
     * 
     *        These tags are available for use by Amazon Web Services services that support CodeBuild build project
     *        tags.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withTags(Tag... tags) {
        if (this.tags == null) {
            setTags(new java.util.ArrayList 
     * A list of tag key and value pairs associated with this build project.
     *  
     * These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.
     * 
     *        These tags are available for use by Amazon Web Services services that support CodeBuild build project
     *        tags.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withTags(java.util.Collection 
     * VpcConfig enables CodeBuild to access resources in an Amazon VPC.
     *  
     * VpcConfig enables CodeBuild to access resources in an Amazon VPC.
     *  
     * VpcConfig enables CodeBuild to access resources in an Amazon VPC.
     *  
     * Set this to true to generate a publicly accessible URL for your project's build badge.
     *  
     * Set this to true to generate a publicly accessible URL for your project's build badge.
     *  
     * Set this to true to generate a publicly accessible URL for your project's build badge.
     *  
     * Set this to true to generate a publicly accessible URL for your project's build badge.
     *  
     * Information about logs for the build project. These can be logs in CloudWatch Logs, logs uploaded to a specified
     * S3 bucket, or both.
     *  
     * Information about logs for the build project. These can be logs in CloudWatch Logs, logs uploaded to a specified
     * S3 bucket, or both.
     *  
     * Information about logs for the build project. These can be logs in CloudWatch Logs, logs uploaded to a specified
     * S3 bucket, or both.
     *  
     * An array of  
     * An array of  
     * An array of  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setFileSystemLocations(java.util.Collection)} or {@link #withFileSystemLocations(java.util.Collection)}
     * if you want to override the existing values.
     *  
     * An array of  
     * A ProjectBuildBatchConfig object that defines the batch build options for the project.
     *  
     * A ProjectBuildBatchConfig object that defines the batch build options for the project.
     *  
     * A ProjectBuildBatchConfig object that defines the batch build options for the project.
     *  
     * The maximum number of concurrent builds that are allowed for this project.
     *  
     * New builds are only started if the current number of builds is less than or equal to this limit. If the current
     * build count meets this limit, new builds are throttled and are not run.
     * 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.
     * 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.
     */
    public java.util.ListProjectFileSystemLocation 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.
     * 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.
     */
    public void setFileSystemLocations(java.util.CollectionProjectFileSystemLocation 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.
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withFileSystemLocations(ProjectFileSystemLocation... fileSystemLocations) {
        if (this.fileSystemLocations == null) {
            setFileSystemLocations(new java.util.ArrayListProjectFileSystemLocation 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.
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateProjectRequest withFileSystemLocations(java.util.Collection
* New builds are only started if the current number of builds is less than or equal to this limit. If the * current build count meets this limit, new builds are throttled and are not run. */ public void setConcurrentBuildLimit(Integer concurrentBuildLimit) { this.concurrentBuildLimit = concurrentBuildLimit; } /** *
* The maximum number of concurrent builds that are allowed for this project. *
** New builds are only started if the current number of builds is less than or equal to this limit. If the current * build count meets this limit, new builds are throttled and are not run. *
* * @return The maximum number of concurrent builds that are allowed for this project. ** New builds are only started if the current number of builds is less than or equal to this limit. If the * current build count meets this limit, new builds are throttled and are not run. */ public Integer getConcurrentBuildLimit() { return this.concurrentBuildLimit; } /** *
* The maximum number of concurrent builds that are allowed for this project. *
** New builds are only started if the current number of builds is less than or equal to this limit. If the current * build count meets this limit, new builds are throttled and are not run. *
* * @param concurrentBuildLimit * The maximum number of concurrent builds that are allowed for this project. ** New builds are only started if the current number of builds is less than or equal to this limit. If the * current build count meets this limit, new builds are throttled and are not run. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateProjectRequest withConcurrentBuildLimit(Integer concurrentBuildLimit) { setConcurrentBuildLimit(concurrentBuildLimit); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getSource() != null) sb.append("Source: ").append(getSource()).append(","); if (getSecondarySources() != null) sb.append("SecondarySources: ").append(getSecondarySources()).append(","); if (getSourceVersion() != null) sb.append("SourceVersion: ").append(getSourceVersion()).append(","); if (getSecondarySourceVersions() != null) sb.append("SecondarySourceVersions: ").append(getSecondarySourceVersions()).append(","); if (getArtifacts() != null) sb.append("Artifacts: ").append(getArtifacts()).append(","); if (getSecondaryArtifacts() != null) sb.append("SecondaryArtifacts: ").append(getSecondaryArtifacts()).append(","); if (getCache() != null) sb.append("Cache: ").append(getCache()).append(","); if (getEnvironment() != null) sb.append("Environment: ").append(getEnvironment()).append(","); if (getServiceRole() != null) sb.append("ServiceRole: ").append(getServiceRole()).append(","); if (getTimeoutInMinutes() != null) sb.append("TimeoutInMinutes: ").append(getTimeoutInMinutes()).append(","); if (getQueuedTimeoutInMinutes() != null) sb.append("QueuedTimeoutInMinutes: ").append(getQueuedTimeoutInMinutes()).append(","); if (getEncryptionKey() != null) sb.append("EncryptionKey: ").append(getEncryptionKey()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getVpcConfig() != null) sb.append("VpcConfig: ").append(getVpcConfig()).append(","); if (getBadgeEnabled() != null) sb.append("BadgeEnabled: ").append(getBadgeEnabled()).append(","); if (getLogsConfig() != null) sb.append("LogsConfig: ").append(getLogsConfig()).append(","); if (getFileSystemLocations() != null) sb.append("FileSystemLocations: ").append(getFileSystemLocations()).append(","); if (getBuildBatchConfig() != null) sb.append("BuildBatchConfig: ").append(getBuildBatchConfig()).append(","); if (getConcurrentBuildLimit() != null) sb.append("ConcurrentBuildLimit: ").append(getConcurrentBuildLimit()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateProjectRequest == false) return false; CreateProjectRequest other = (CreateProjectRequest) obj; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getSource() == null ^ this.getSource() == null) return false; if (other.getSource() != null && other.getSource().equals(this.getSource()) == false) return false; if (other.getSecondarySources() == null ^ this.getSecondarySources() == null) return false; if (other.getSecondarySources() != null && other.getSecondarySources().equals(this.getSecondarySources()) == false) return false; if (other.getSourceVersion() == null ^ this.getSourceVersion() == null) return false; if (other.getSourceVersion() != null && other.getSourceVersion().equals(this.getSourceVersion()) == false) return false; if (other.getSecondarySourceVersions() == null ^ this.getSecondarySourceVersions() == null) return false; if (other.getSecondarySourceVersions() != null && other.getSecondarySourceVersions().equals(this.getSecondarySourceVersions()) == false) return false; if (other.getArtifacts() == null ^ this.getArtifacts() == null) return false; if (other.getArtifacts() != null && other.getArtifacts().equals(this.getArtifacts()) == false) return false; if (other.getSecondaryArtifacts() == null ^ this.getSecondaryArtifacts() == null) return false; if (other.getSecondaryArtifacts() != null && other.getSecondaryArtifacts().equals(this.getSecondaryArtifacts()) == false) return false; if (other.getCache() == null ^ this.getCache() == null) return false; if (other.getCache() != null && other.getCache().equals(this.getCache()) == false) return false; if (other.getEnvironment() == null ^ this.getEnvironment() == null) return false; if (other.getEnvironment() != null && other.getEnvironment().equals(this.getEnvironment()) == false) return false; if (other.getServiceRole() == null ^ this.getServiceRole() == null) return false; if (other.getServiceRole() != null && other.getServiceRole().equals(this.getServiceRole()) == false) return false; if (other.getTimeoutInMinutes() == null ^ this.getTimeoutInMinutes() == null) return false; if (other.getTimeoutInMinutes() != null && other.getTimeoutInMinutes().equals(this.getTimeoutInMinutes()) == false) return false; if (other.getQueuedTimeoutInMinutes() == null ^ this.getQueuedTimeoutInMinutes() == null) return false; if (other.getQueuedTimeoutInMinutes() != null && other.getQueuedTimeoutInMinutes().equals(this.getQueuedTimeoutInMinutes()) == false) return false; if (other.getEncryptionKey() == null ^ this.getEncryptionKey() == null) return false; if (other.getEncryptionKey() != null && other.getEncryptionKey().equals(this.getEncryptionKey()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getVpcConfig() == null ^ this.getVpcConfig() == null) return false; if (other.getVpcConfig() != null && other.getVpcConfig().equals(this.getVpcConfig()) == false) return false; if (other.getBadgeEnabled() == null ^ this.getBadgeEnabled() == null) return false; if (other.getBadgeEnabled() != null && other.getBadgeEnabled().equals(this.getBadgeEnabled()) == false) return false; if (other.getLogsConfig() == null ^ this.getLogsConfig() == null) return false; if (other.getLogsConfig() != null && other.getLogsConfig().equals(this.getLogsConfig()) == false) return false; if (other.getFileSystemLocations() == null ^ this.getFileSystemLocations() == null) return false; if (other.getFileSystemLocations() != null && other.getFileSystemLocations().equals(this.getFileSystemLocations()) == false) return false; if (other.getBuildBatchConfig() == null ^ this.getBuildBatchConfig() == null) return false; if (other.getBuildBatchConfig() != null && other.getBuildBatchConfig().equals(this.getBuildBatchConfig()) == false) return false; if (other.getConcurrentBuildLimit() == null ^ this.getConcurrentBuildLimit() == null) return false; if (other.getConcurrentBuildLimit() != null && other.getConcurrentBuildLimit().equals(this.getConcurrentBuildLimit()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getSource() == null) ? 0 : getSource().hashCode()); hashCode = prime * hashCode + ((getSecondarySources() == null) ? 0 : getSecondarySources().hashCode()); hashCode = prime * hashCode + ((getSourceVersion() == null) ? 0 : getSourceVersion().hashCode()); hashCode = prime * hashCode + ((getSecondarySourceVersions() == null) ? 0 : getSecondarySourceVersions().hashCode()); hashCode = prime * hashCode + ((getArtifacts() == null) ? 0 : getArtifacts().hashCode()); hashCode = prime * hashCode + ((getSecondaryArtifacts() == null) ? 0 : getSecondaryArtifacts().hashCode()); hashCode = prime * hashCode + ((getCache() == null) ? 0 : getCache().hashCode()); hashCode = prime * hashCode + ((getEnvironment() == null) ? 0 : getEnvironment().hashCode()); hashCode = prime * hashCode + ((getServiceRole() == null) ? 0 : getServiceRole().hashCode()); hashCode = prime * hashCode + ((getTimeoutInMinutes() == null) ? 0 : getTimeoutInMinutes().hashCode()); hashCode = prime * hashCode + ((getQueuedTimeoutInMinutes() == null) ? 0 : getQueuedTimeoutInMinutes().hashCode()); hashCode = prime * hashCode + ((getEncryptionKey() == null) ? 0 : getEncryptionKey().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getVpcConfig() == null) ? 0 : getVpcConfig().hashCode()); hashCode = prime * hashCode + ((getBadgeEnabled() == null) ? 0 : getBadgeEnabled().hashCode()); hashCode = prime * hashCode + ((getLogsConfig() == null) ? 0 : getLogsConfig().hashCode()); hashCode = prime * hashCode + ((getFileSystemLocations() == null) ? 0 : getFileSystemLocations().hashCode()); hashCode = prime * hashCode + ((getBuildBatchConfig() == null) ? 0 : getBuildBatchConfig().hashCode()); hashCode = prime * hashCode + ((getConcurrentBuildLimit() == null) ? 0 : getConcurrentBuildLimit().hashCode()); return hashCode; } @Override public CreateProjectRequest clone() { return (CreateProjectRequest) super.clone(); } }