/* * 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.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* Information about a build project. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Project implements Serializable, Cloneable, StructuredPojo { /** *

* The name of the build project. *

*/ private String name; /** *

* The Amazon Resource Name (ARN) of the build project. *

*/ private String arn; /** *

* A description that makes the build project easy to identify. *

*/ private String description; /** *

* Information about the build input source code for this build project. *

*/ private ProjectSource source; /** *

* An array of ProjectSource objects. *

*/ private java.util.List secondarySources; /** *

* 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: *

* *

* 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 over these secondarySourceVersions (at the project level). *

*/ private java.util.List secondarySourceVersions; /** *

* Information about the build output artifacts for the build project. *

*/ private ProjectArtifacts artifacts; /** *

* An array of ProjectArtifacts objects. *

*/ private java.util.List secondaryArtifacts; /** *

* Information about the cache for the build project. *

*/ private ProjectCache cache; /** *

* Information about the build environment for this 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 timing out any related build that did * not get 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>). If you don't specify a value, CodeBuild uses the managed CMK for * Amazon Simple Storage Service (Amazon S3). *

*/ private String encryptionKey; /** *

* 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 tags; /** *

* When the build project was created, expressed in Unix time format. *

*/ private java.util.Date created; /** *

* When the build project's settings were last modified, expressed in Unix time format. *

*/ private java.util.Date lastModified; /** *

* Information about a webhook that connects repository events to a build project in CodeBuild. *

*/ private Webhook webhook; /** *

* Information about the VPC configuration that CodeBuild accesses. *

*/ private VpcConfig vpcConfig; /** *

* Information about the build badge for the build project. *

*/ private ProjectBadge badge; /** *

* Information about logs for the build project. A project can create logs in CloudWatch Logs, an 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. *

*/ private java.util.List fileSystemLocations; /** *

* 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; private String projectVisibility; /** *

* Contains the project identifier used with the public build APIs. *

*/ private String publicProjectAlias; /** *

* The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the * project's builds. *

*/ private String resourceAccessRole; /** *

* 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 Project withName(String name) { setName(name); return this; } /** *

* The Amazon Resource Name (ARN) of the build project. *

* * @param arn * The Amazon Resource Name (ARN) of the build project. */ public void setArn(String arn) { this.arn = arn; } /** *

* The Amazon Resource Name (ARN) of the build project. *

* * @return The Amazon Resource Name (ARN) of the build project. */ public String getArn() { return this.arn; } /** *

* The Amazon Resource Name (ARN) of the build project. *

* * @param arn * The Amazon Resource Name (ARN) of the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withArn(String arn) { setArn(arn); 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 Project withDescription(String description) { setDescription(description); return this; } /** *

* Information about the build input source code for this build project. *

* * @param source * Information about the build input source code for this build project. */ public void setSource(ProjectSource source) { this.source = source; } /** *

* Information about the build input source code for this build project. *

* * @return Information about the build input source code for this build project. */ public ProjectSource getSource() { return this.source; } /** *

* Information about the build input source code for this build project. *

* * @param source * Information about the build input source code for this build project. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSource(ProjectSource source) { setSource(source); return this; } /** *

* An array of ProjectSource objects. *

* * @return An array of ProjectSource objects. */ public java.util.List getSecondarySources() { return secondarySources; } /** *

* An array of ProjectSource objects. *

* * @param secondarySources * An array of ProjectSource objects. */ public void setSecondarySources(java.util.Collection secondarySources) { if (secondarySources == null) { this.secondarySources = null; return; } this.secondarySources = new java.util.ArrayList(secondarySources); } /** *

* 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 of ProjectSource objects. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSecondarySources(ProjectSource... secondarySources) { if (this.secondarySources == null) { setSecondarySources(new java.util.ArrayList(secondarySources.length)); } for (ProjectSource ele : secondarySources) { this.secondarySources.add(ele); } return this; } /** *

* An array of ProjectSource objects. *

* * @param secondarySources * An array of ProjectSource objects. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSecondarySources(java.util.Collection secondarySources) { setSecondarySources(secondarySources); return this; } /** *

* 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 Project withSourceVersion(String sourceVersion) { setSourceVersion(sourceVersion); return this; } /** *

* An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at * the build level, then they take over these secondarySourceVersions (at the project level). *

* * @return An array of ProjectSourceVersion objects. If secondarySourceVersions is * specified at the build level, then they take over these secondarySourceVersions (at the * project level). */ public java.util.List getSecondarySourceVersions() { return secondarySourceVersions; } /** *

* An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at * the build level, then they take over these secondarySourceVersions (at the project level). *

* * @param secondarySourceVersions * An array of ProjectSourceVersion objects. If secondarySourceVersions is * specified at the build level, then they take over these secondarySourceVersions (at the * project level). */ public void setSecondarySourceVersions(java.util.Collection secondarySourceVersions) { if (secondarySourceVersions == null) { this.secondarySourceVersions = null; return; } this.secondarySourceVersions = new java.util.ArrayList(secondarySourceVersions); } /** *

* An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at * the build level, then they take 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 of ProjectSourceVersion objects. If secondarySourceVersions is * specified at the build level, then they take over these secondarySourceVersions (at the * project level). * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSecondarySourceVersions(ProjectSourceVersion... secondarySourceVersions) { if (this.secondarySourceVersions == null) { setSecondarySourceVersions(new java.util.ArrayList(secondarySourceVersions.length)); } for (ProjectSourceVersion ele : secondarySourceVersions) { this.secondarySourceVersions.add(ele); } return this; } /** *

* An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at * the build level, then they take over these secondarySourceVersions (at the project level). *

* * @param secondarySourceVersions * An array of ProjectSourceVersion objects. If secondarySourceVersions is * specified at the build level, then they take over these secondarySourceVersions (at the * project level). * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSecondarySourceVersions(java.util.Collection secondarySourceVersions) { setSecondarySourceVersions(secondarySourceVersions); return this; } /** *

* 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 Project withArtifacts(ProjectArtifacts artifacts) { setArtifacts(artifacts); return this; } /** *

* An array of ProjectArtifacts objects. *

* * @return An array of ProjectArtifacts objects. */ public java.util.List getSecondaryArtifacts() { return secondaryArtifacts; } /** *

* An array of ProjectArtifacts objects. *

* * @param secondaryArtifacts * An array of ProjectArtifacts objects. */ public void setSecondaryArtifacts(java.util.Collection secondaryArtifacts) { if (secondaryArtifacts == null) { this.secondaryArtifacts = null; return; } this.secondaryArtifacts = new java.util.ArrayList(secondaryArtifacts); } /** *

* 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 of ProjectArtifacts objects. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSecondaryArtifacts(ProjectArtifacts... secondaryArtifacts) { if (this.secondaryArtifacts == null) { setSecondaryArtifacts(new java.util.ArrayList(secondaryArtifacts.length)); } for (ProjectArtifacts ele : secondaryArtifacts) { this.secondaryArtifacts.add(ele); } return this; } /** *

* An array of ProjectArtifacts objects. *

* * @param secondaryArtifacts * An array of ProjectArtifacts objects. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withSecondaryArtifacts(java.util.Collection secondaryArtifacts) { setSecondaryArtifacts(secondaryArtifacts); return this; } /** *

* Information about the cache for the build project. *

* * @param cache * Information about the cache for the build project. */ public void setCache(ProjectCache cache) { this.cache = cache; } /** *

* Information about the cache for the build project. *

* * @return Information about the cache for the build project. */ public ProjectCache getCache() { return this.cache; } /** *

* Information about the cache for the build project. *

* * @param cache * Information about the cache for the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withCache(ProjectCache cache) { setCache(cache); return this; } /** *

* Information about the build environment for this build project. *

* * @param environment * Information about the build environment for this build project. */ public void setEnvironment(ProjectEnvironment environment) { this.environment = environment; } /** *

* Information about the build environment for this build project. *

* * @return Information about the build environment for this build project. */ public ProjectEnvironment getEnvironment() { return this.environment; } /** *

* Information about the build environment for this build project. *

* * @param environment * Information about the build environment for this build project. * @return Returns a reference to this object so that method calls can be chained together. */ public Project 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 Project withServiceRole(String serviceRole) { setServiceRole(serviceRole); return this; } /** *

* How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before timing out any related build that did * not get 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 timing out any related build * that did not get 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 timing out any related build that did * not get marked as completed. The default is 60 minutes. *

* * @return How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before timing out any related build * that did not get 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 timing out any related build that did * not get 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 timing out any related build * that did not get marked as completed. The default is 60 minutes. * @return Returns a reference to this object so that method calls can be chained together. */ public Project 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 Project 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>). If you don't specify a value, CodeBuild uses the managed CMK for * Amazon Simple Storage Service (Amazon S3). *

* * @param 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>). If you don't specify a value, CodeBuild uses the * managed CMK for Amazon Simple Storage Service (Amazon S3). */ 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>). If you don't specify a value, CodeBuild uses the managed CMK for * Amazon Simple Storage Service (Amazon S3). *

* * @return 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>). If you don't specify a value, CodeBuild uses the * managed CMK for Amazon Simple Storage Service (Amazon S3). */ 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>). If you don't specify a value, CodeBuild uses the managed CMK for * Amazon Simple Storage Service (Amazon S3). *

* * @param 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>). If you don't specify a value, CodeBuild uses the * managed CMK for Amazon Simple Storage Service (Amazon S3). * @return Returns a reference to this object so that method calls can be chained together. */ public Project 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 getTags() { return tags; } /** *

* 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. *

* * @param tags * 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 void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(tags); } /** *

* 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. *

* * @param tags * 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 Returns a reference to this object so that method calls can be chained together. */ public Project withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } 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. *

* * @param tags * 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 Returns a reference to this object so that method calls can be chained together. */ public Project withTags(java.util.Collection tags) { setTags(tags); return this; } /** *

* When the build project was created, expressed in Unix time format. *

* * @param created * When the build project was created, expressed in Unix time format. */ public void setCreated(java.util.Date created) { this.created = created; } /** *

* When the build project was created, expressed in Unix time format. *

* * @return When the build project was created, expressed in Unix time format. */ public java.util.Date getCreated() { return this.created; } /** *

* When the build project was created, expressed in Unix time format. *

* * @param created * When the build project was created, expressed in Unix time format. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withCreated(java.util.Date created) { setCreated(created); return this; } /** *

* When the build project's settings were last modified, expressed in Unix time format. *

* * @param lastModified * When the build project's settings were last modified, expressed in Unix time format. */ public void setLastModified(java.util.Date lastModified) { this.lastModified = lastModified; } /** *

* When the build project's settings were last modified, expressed in Unix time format. *

* * @return When the build project's settings were last modified, expressed in Unix time format. */ public java.util.Date getLastModified() { return this.lastModified; } /** *

* When the build project's settings were last modified, expressed in Unix time format. *

* * @param lastModified * When the build project's settings were last modified, expressed in Unix time format. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withLastModified(java.util.Date lastModified) { setLastModified(lastModified); return this; } /** *

* Information about a webhook that connects repository events to a build project in CodeBuild. *

* * @param webhook * Information about a webhook that connects repository events to a build project in CodeBuild. */ public void setWebhook(Webhook webhook) { this.webhook = webhook; } /** *

* Information about a webhook that connects repository events to a build project in CodeBuild. *

* * @return Information about a webhook that connects repository events to a build project in CodeBuild. */ public Webhook getWebhook() { return this.webhook; } /** *

* Information about a webhook that connects repository events to a build project in CodeBuild. *

* * @param webhook * Information about a webhook that connects repository events to a build project in CodeBuild. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withWebhook(Webhook webhook) { setWebhook(webhook); return this; } /** *

* Information about the VPC configuration that CodeBuild accesses. *

* * @param vpcConfig * Information about the VPC configuration that CodeBuild accesses. */ public void setVpcConfig(VpcConfig vpcConfig) { this.vpcConfig = vpcConfig; } /** *

* Information about the VPC configuration that CodeBuild accesses. *

* * @return Information about the VPC configuration that CodeBuild accesses. */ public VpcConfig getVpcConfig() { return this.vpcConfig; } /** *

* Information about the VPC configuration that CodeBuild accesses. *

* * @param vpcConfig * Information about the VPC configuration that CodeBuild accesses. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withVpcConfig(VpcConfig vpcConfig) { setVpcConfig(vpcConfig); return this; } /** *

* Information about the build badge for the build project. *

* * @param badge * Information about the build badge for the build project. */ public void setBadge(ProjectBadge badge) { this.badge = badge; } /** *

* Information about the build badge for the build project. *

* * @return Information about the build badge for the build project. */ public ProjectBadge getBadge() { return this.badge; } /** *

* Information about the build badge for the build project. *

* * @param badge * Information about the build badge for the build project. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withBadge(ProjectBadge badge) { setBadge(badge); return this; } /** *

* Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or * both. *

* * @param logsConfig * Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, * or both. */ public void setLogsConfig(LogsConfig logsConfig) { this.logsConfig = logsConfig; } /** *

* Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or * both. *

* * @return Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, * or both. */ public LogsConfig getLogsConfig() { return this.logsConfig; } /** *

* Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or * both. *

* * @param logsConfig * Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, * or both. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withLogsConfig(LogsConfig logsConfig) { setLogsConfig(logsConfig); return this; } /** *

* 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. *

* * @return 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. */ public java.util.List getFileSystemLocations() { return fileSystemLocations; } /** *

* 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. *

* * @param fileSystemLocations * 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. */ public void setFileSystemLocations(java.util.Collection fileSystemLocations) { if (fileSystemLocations == null) { this.fileSystemLocations = null; return; } this.fileSystemLocations = new java.util.ArrayList(fileSystemLocations); } /** *

* 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. *

*

* 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. *

* * @param fileSystemLocations * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withFileSystemLocations(ProjectFileSystemLocation... fileSystemLocations) { if (this.fileSystemLocations == null) { setFileSystemLocations(new java.util.ArrayList(fileSystemLocations.length)); } for (ProjectFileSystemLocation ele : fileSystemLocations) { this.fileSystemLocations.add(ele); } return this; } /** *

* 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. *

* * @param fileSystemLocations * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withFileSystemLocations(java.util.Collection fileSystemLocations) { setFileSystemLocations(fileSystemLocations); return this; } /** *

* A ProjectBuildBatchConfig object that defines the batch build options for the project. *

* * @param buildBatchConfig * A ProjectBuildBatchConfig object that defines the batch build options for the project. */ public void setBuildBatchConfig(ProjectBuildBatchConfig buildBatchConfig) { this.buildBatchConfig = buildBatchConfig; } /** *

* A ProjectBuildBatchConfig object that defines the batch build options for the project. *

* * @return A ProjectBuildBatchConfig object that defines the batch build options for the project. */ public ProjectBuildBatchConfig getBuildBatchConfig() { return this.buildBatchConfig; } /** *

* A ProjectBuildBatchConfig object that defines the batch build options for the project. *

* * @param buildBatchConfig * A ProjectBuildBatchConfig object that defines the batch build options for the project. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withBuildBatchConfig(ProjectBuildBatchConfig buildBatchConfig) { setBuildBatchConfig(buildBatchConfig); return this; } /** *

* 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. */ 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 Project withConcurrentBuildLimit(Integer concurrentBuildLimit) { setConcurrentBuildLimit(concurrentBuildLimit); return this; } /** * @param projectVisibility * @see ProjectVisibilityType */ public void setProjectVisibility(String projectVisibility) { this.projectVisibility = projectVisibility; } /** * @return * @see ProjectVisibilityType */ public String getProjectVisibility() { return this.projectVisibility; } /** * @param projectVisibility * @return Returns a reference to this object so that method calls can be chained together. * @see ProjectVisibilityType */ public Project withProjectVisibility(String projectVisibility) { setProjectVisibility(projectVisibility); return this; } /** * @param projectVisibility * @return Returns a reference to this object so that method calls can be chained together. * @see ProjectVisibilityType */ public Project withProjectVisibility(ProjectVisibilityType projectVisibility) { this.projectVisibility = projectVisibility.toString(); return this; } /** *

* Contains the project identifier used with the public build APIs. *

* * @param publicProjectAlias * Contains the project identifier used with the public build APIs. */ public void setPublicProjectAlias(String publicProjectAlias) { this.publicProjectAlias = publicProjectAlias; } /** *

* Contains the project identifier used with the public build APIs. *

* * @return Contains the project identifier used with the public build APIs. */ public String getPublicProjectAlias() { return this.publicProjectAlias; } /** *

* Contains the project identifier used with the public build APIs. *

* * @param publicProjectAlias * Contains the project identifier used with the public build APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withPublicProjectAlias(String publicProjectAlias) { setPublicProjectAlias(publicProjectAlias); return this; } /** *

* The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the * project's builds. *

* * @param resourceAccessRole * The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for * the project's builds. */ public void setResourceAccessRole(String resourceAccessRole) { this.resourceAccessRole = resourceAccessRole; } /** *

* The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the * project's builds. *

* * @return The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for * the project's builds. */ public String getResourceAccessRole() { return this.resourceAccessRole; } /** *

* The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the * project's builds. *

* * @param resourceAccessRole * The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for * the project's builds. * @return Returns a reference to this object so that method calls can be chained together. */ public Project withResourceAccessRole(String resourceAccessRole) { setResourceAccessRole(resourceAccessRole); 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 (getArn() != null) sb.append("Arn: ").append(getArn()).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 (getCreated() != null) sb.append("Created: ").append(getCreated()).append(","); if (getLastModified() != null) sb.append("LastModified: ").append(getLastModified()).append(","); if (getWebhook() != null) sb.append("Webhook: ").append(getWebhook()).append(","); if (getVpcConfig() != null) sb.append("VpcConfig: ").append(getVpcConfig()).append(","); if (getBadge() != null) sb.append("Badge: ").append(getBadge()).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()).append(","); if (getProjectVisibility() != null) sb.append("ProjectVisibility: ").append(getProjectVisibility()).append(","); if (getPublicProjectAlias() != null) sb.append("PublicProjectAlias: ").append(getPublicProjectAlias()).append(","); if (getResourceAccessRole() != null) sb.append("ResourceAccessRole: ").append(getResourceAccessRole()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Project == false) return false; Project other = (Project) obj; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getArn() == null ^ this.getArn() == null) return false; if (other.getArn() != null && other.getArn().equals(this.getArn()) == 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.getCreated() == null ^ this.getCreated() == null) return false; if (other.getCreated() != null && other.getCreated().equals(this.getCreated()) == false) return false; if (other.getLastModified() == null ^ this.getLastModified() == null) return false; if (other.getLastModified() != null && other.getLastModified().equals(this.getLastModified()) == false) return false; if (other.getWebhook() == null ^ this.getWebhook() == null) return false; if (other.getWebhook() != null && other.getWebhook().equals(this.getWebhook()) == 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.getBadge() == null ^ this.getBadge() == null) return false; if (other.getBadge() != null && other.getBadge().equals(this.getBadge()) == 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; if (other.getProjectVisibility() == null ^ this.getProjectVisibility() == null) return false; if (other.getProjectVisibility() != null && other.getProjectVisibility().equals(this.getProjectVisibility()) == false) return false; if (other.getPublicProjectAlias() == null ^ this.getPublicProjectAlias() == null) return false; if (other.getPublicProjectAlias() != null && other.getPublicProjectAlias().equals(this.getPublicProjectAlias()) == false) return false; if (other.getResourceAccessRole() == null ^ this.getResourceAccessRole() == null) return false; if (other.getResourceAccessRole() != null && other.getResourceAccessRole().equals(this.getResourceAccessRole()) == 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 + ((getArn() == null) ? 0 : getArn().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 + ((getCreated() == null) ? 0 : getCreated().hashCode()); hashCode = prime * hashCode + ((getLastModified() == null) ? 0 : getLastModified().hashCode()); hashCode = prime * hashCode + ((getWebhook() == null) ? 0 : getWebhook().hashCode()); hashCode = prime * hashCode + ((getVpcConfig() == null) ? 0 : getVpcConfig().hashCode()); hashCode = prime * hashCode + ((getBadge() == null) ? 0 : getBadge().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()); hashCode = prime * hashCode + ((getProjectVisibility() == null) ? 0 : getProjectVisibility().hashCode()); hashCode = prime * hashCode + ((getPublicProjectAlias() == null) ? 0 : getPublicProjectAlias().hashCode()); hashCode = prime * hashCode + ((getResourceAccessRole() == null) ? 0 : getResourceAccessRole().hashCode()); return hashCode; } @Override public Project clone() { try { return (Project) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.codebuild.model.transform.ProjectMarshaller.getInstance().marshall(this, protocolMarshaller); } }