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

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

* The unique ID for the build. *

*/ private String id; /** *

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

*/ private String arn; /** *

* The number of the build. For each project, the buildNumber of its first build is 1. The * buildNumber of each subsequent build is incremented by 1. If a build is deleted, the * buildNumber of other builds does not change. *

*/ private Long buildNumber; /** *

* When the build process started, expressed in Unix time format. *

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

* When the build process ended, expressed in Unix time format. *

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

* The current build phase. *

*/ private String currentPhase; /** *

* The current status of the build. Valid values include: *

* */ private String buildStatus; /** *

* Any version identifier for the version of the source code to be built. If sourceVersion is specified * at the project level, then this sourceVersion (at the build level) takes precedence. *

*

* For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *

*/ private String sourceVersion; /** *

* An identifier for the version of this build's source code. *

* */ private String resolvedSourceVersion; /** *

* The name of the CodeBuild project. *

*/ private String projectName; /** *

* Information about all previous build phases that are complete and information about any current build phase that * is not yet complete. *

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

* Information about the source code to be built. *

*/ private ProjectSource source; /** *

* An array of ProjectSource objects. *

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

* An array of ProjectSourceVersion objects. Each ProjectSourceVersion must be one of: *

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

* Information about the output artifacts for the build. *

*/ private BuildArtifacts artifacts; /** *

* An array of ProjectArtifacts objects. *

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

* Information about the cache for the build. *

*/ private ProjectCache cache; /** *

* Information about the build environment for this build. *

*/ private ProjectEnvironment environment; /** *

* The name of a service role used for this build. *

*/ private String serviceRole; /** *

* Information about the build's logs in CloudWatch Logs. *

*/ private LogsLocation logs; /** *

* How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed. *

*/ private Integer timeoutInMinutes; /** *

* The number of minutes a build is allowed to be queued before it times out. *

*/ private Integer queuedTimeoutInMinutes; /** *

* Whether the build is complete. True if complete; otherwise, false. *

*/ private Boolean buildComplete; /** *

* The entity that started the build. Valid values include: *

*
    *
  • *

    * If CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). *

    *
  • *
  • *

    * If an IAM user started the build, the user's name (for example, MyUserName). *

    *
  • *
  • *

    * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

    *
  • *
*/ private String initiator; /** *

* If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC * ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same * VPC. You must provide at least one security group and one subnet ID. *

*/ private VpcConfig vpcConfig; /** *

* Describes a network interface. *

*/ private NetworkInterface networkInterface; /** *

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

*/ private String encryptionKey; /** *

* A list of exported environment variables for this build. *

*

* Exported environment variables are used in conjunction with CodePipeline to export environment variables from the * current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. *

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

* An array of the ARNs associated with this build's reports. *

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

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

* Contains information about the debug session for this build. *

*/ private DebugSession debugSession; /** *

* The ARN of the batch build that this build is a member of, if applicable. *

*/ private String buildBatchArn; /** *

* The unique ID for the build. *

* * @param id * The unique ID for the build. */ public void setId(String id) { this.id = id; } /** *

* The unique ID for the build. *

* * @return The unique ID for the build. */ public String getId() { return this.id; } /** *

* The unique ID for the build. *

* * @param id * The unique ID for the build. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withId(String id) { setId(id); return this; } /** *

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

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

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

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

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

* * @param arn * The Amazon Resource Name (ARN) of the build. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withArn(String arn) { setArn(arn); return this; } /** *

* The number of the build. For each project, the buildNumber of its first build is 1. The * buildNumber of each subsequent build is incremented by 1. If a build is deleted, the * buildNumber of other builds does not change. *

* * @param buildNumber * The number of the build. For each project, the buildNumber of its first build is * 1. The buildNumber of each subsequent build is incremented by 1. If * a build is deleted, the buildNumber of other builds does not change. */ public void setBuildNumber(Long buildNumber) { this.buildNumber = buildNumber; } /** *

* The number of the build. For each project, the buildNumber of its first build is 1. The * buildNumber of each subsequent build is incremented by 1. If a build is deleted, the * buildNumber of other builds does not change. *

* * @return The number of the build. For each project, the buildNumber of its first build is * 1. The buildNumber of each subsequent build is incremented by 1. * If a build is deleted, the buildNumber of other builds does not change. */ public Long getBuildNumber() { return this.buildNumber; } /** *

* The number of the build. For each project, the buildNumber of its first build is 1. The * buildNumber of each subsequent build is incremented by 1. If a build is deleted, the * buildNumber of other builds does not change. *

* * @param buildNumber * The number of the build. For each project, the buildNumber of its first build is * 1. The buildNumber of each subsequent build is incremented by 1. If * a build is deleted, the buildNumber of other builds does not change. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withBuildNumber(Long buildNumber) { setBuildNumber(buildNumber); return this; } /** *

* When the build process started, expressed in Unix time format. *

* * @param startTime * When the build process started, expressed in Unix time format. */ public void setStartTime(java.util.Date startTime) { this.startTime = startTime; } /** *

* When the build process started, expressed in Unix time format. *

* * @return When the build process started, expressed in Unix time format. */ public java.util.Date getStartTime() { return this.startTime; } /** *

* When the build process started, expressed in Unix time format. *

* * @param startTime * When the build process started, expressed in Unix time format. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withStartTime(java.util.Date startTime) { setStartTime(startTime); return this; } /** *

* When the build process ended, expressed in Unix time format. *

* * @param endTime * When the build process ended, expressed in Unix time format. */ public void setEndTime(java.util.Date endTime) { this.endTime = endTime; } /** *

* When the build process ended, expressed in Unix time format. *

* * @return When the build process ended, expressed in Unix time format. */ public java.util.Date getEndTime() { return this.endTime; } /** *

* When the build process ended, expressed in Unix time format. *

* * @param endTime * When the build process ended, expressed in Unix time format. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withEndTime(java.util.Date endTime) { setEndTime(endTime); return this; } /** *

* The current build phase. *

* * @param currentPhase * The current build phase. */ public void setCurrentPhase(String currentPhase) { this.currentPhase = currentPhase; } /** *

* The current build phase. *

* * @return The current build phase. */ public String getCurrentPhase() { return this.currentPhase; } /** *

* The current build phase. *

* * @param currentPhase * The current build phase. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withCurrentPhase(String currentPhase) { setCurrentPhase(currentPhase); return this; } /** *

* The current status of the build. Valid values include: *

*
    *
  • *

    * FAILED: The build failed. *

    *
  • *
  • *

    * FAULT: The build faulted. *

    *
  • *
  • *

    * IN_PROGRESS: The build is still in progress. *

    *
  • *
  • *

    * STOPPED: The build stopped. *

    *
  • *
  • *

    * SUCCEEDED: The build succeeded. *

    *
  • *
  • *

    * TIMED_OUT: The build timed out. *

    *
  • *
* * @param buildStatus * The current status of the build. Valid values include:

*
    *
  • *

    * FAILED: The build failed. *

    *
  • *
  • *

    * FAULT: The build faulted. *

    *
  • *
  • *

    * IN_PROGRESS: The build is still in progress. *

    *
  • *
  • *

    * STOPPED: The build stopped. *

    *
  • *
  • *

    * SUCCEEDED: The build succeeded. *

    *
  • *
  • *

    * TIMED_OUT: The build timed out. *

    *
  • * @see StatusType */ public void setBuildStatus(String buildStatus) { this.buildStatus = buildStatus; } /** *

    * The current status of the build. Valid values include: *

    *
      *
    • *

      * FAILED: The build failed. *

      *
    • *
    • *

      * FAULT: The build faulted. *

      *
    • *
    • *

      * IN_PROGRESS: The build is still in progress. *

      *
    • *
    • *

      * STOPPED: The build stopped. *

      *
    • *
    • *

      * SUCCEEDED: The build succeeded. *

      *
    • *
    • *

      * TIMED_OUT: The build timed out. *

      *
    • *
    * * @return The current status of the build. Valid values include:

    *
      *
    • *

      * FAILED: The build failed. *

      *
    • *
    • *

      * FAULT: The build faulted. *

      *
    • *
    • *

      * IN_PROGRESS: The build is still in progress. *

      *
    • *
    • *

      * STOPPED: The build stopped. *

      *
    • *
    • *

      * SUCCEEDED: The build succeeded. *

      *
    • *
    • *

      * TIMED_OUT: The build timed out. *

      *
    • * @see StatusType */ public String getBuildStatus() { return this.buildStatus; } /** *

      * The current status of the build. Valid values include: *

      *
        *
      • *

        * FAILED: The build failed. *

        *
      • *
      • *

        * FAULT: The build faulted. *

        *
      • *
      • *

        * IN_PROGRESS: The build is still in progress. *

        *
      • *
      • *

        * STOPPED: The build stopped. *

        *
      • *
      • *

        * SUCCEEDED: The build succeeded. *

        *
      • *
      • *

        * TIMED_OUT: The build timed out. *

        *
      • *
      * * @param buildStatus * The current status of the build. Valid values include:

      *
        *
      • *

        * FAILED: The build failed. *

        *
      • *
      • *

        * FAULT: The build faulted. *

        *
      • *
      • *

        * IN_PROGRESS: The build is still in progress. *

        *
      • *
      • *

        * STOPPED: The build stopped. *

        *
      • *
      • *

        * SUCCEEDED: The build succeeded. *

        *
      • *
      • *

        * TIMED_OUT: The build timed out. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. * @see StatusType */ public Build withBuildStatus(String buildStatus) { setBuildStatus(buildStatus); return this; } /** *

        * The current status of the build. Valid values include: *

        *
          *
        • *

          * FAILED: The build failed. *

          *
        • *
        • *

          * FAULT: The build faulted. *

          *
        • *
        • *

          * IN_PROGRESS: The build is still in progress. *

          *
        • *
        • *

          * STOPPED: The build stopped. *

          *
        • *
        • *

          * SUCCEEDED: The build succeeded. *

          *
        • *
        • *

          * TIMED_OUT: The build timed out. *

          *
        • *
        * * @param buildStatus * The current status of the build. Valid values include:

        *
          *
        • *

          * FAILED: The build failed. *

          *
        • *
        • *

          * FAULT: The build faulted. *

          *
        • *
        • *

          * IN_PROGRESS: The build is still in progress. *

          *
        • *
        • *

          * STOPPED: The build stopped. *

          *
        • *
        • *

          * SUCCEEDED: The build succeeded. *

          *
        • *
        • *

          * TIMED_OUT: The build timed out. *

          *
        • * @see StatusType */ public void setBuildStatus(StatusType buildStatus) { withBuildStatus(buildStatus); } /** *

          * The current status of the build. Valid values include: *

          *
            *
          • *

            * FAILED: The build failed. *

            *
          • *
          • *

            * FAULT: The build faulted. *

            *
          • *
          • *

            * IN_PROGRESS: The build is still in progress. *

            *
          • *
          • *

            * STOPPED: The build stopped. *

            *
          • *
          • *

            * SUCCEEDED: The build succeeded. *

            *
          • *
          • *

            * TIMED_OUT: The build timed out. *

            *
          • *
          * * @param buildStatus * The current status of the build. Valid values include:

          *
            *
          • *

            * FAILED: The build failed. *

            *
          • *
          • *

            * FAULT: The build faulted. *

            *
          • *
          • *

            * IN_PROGRESS: The build is still in progress. *

            *
          • *
          • *

            * STOPPED: The build stopped. *

            *
          • *
          • *

            * SUCCEEDED: The build succeeded. *

            *
          • *
          • *

            * TIMED_OUT: The build timed out. *

            *
          • * @return Returns a reference to this object so that method calls can be chained together. * @see StatusType */ public Build withBuildStatus(StatusType buildStatus) { this.buildStatus = buildStatus.toString(); return this; } /** *

            * Any version identifier for the version of the source code to be built. If sourceVersion is specified * at the project level, then this sourceVersion (at the build level) takes precedence. *

            *

            * For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *

            * * @param sourceVersion * Any version identifier for the version of the source code to be built. If sourceVersion is * specified at the project level, then this sourceVersion (at the build level) takes * precedence.

            *

            * For more information, see Source Version * Sample with CodeBuild in the CodeBuild User Guide. */ public void setSourceVersion(String sourceVersion) { this.sourceVersion = sourceVersion; } /** *

            * Any version identifier for the version of the source code to be built. If sourceVersion is specified * at the project level, then this sourceVersion (at the build level) takes precedence. *

            *

            * For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *

            * * @return Any version identifier for the version of the source code to be built. If sourceVersion is * specified at the project level, then this sourceVersion (at the build level) takes * precedence.

            *

            * For more information, see Source Version * Sample with CodeBuild in the CodeBuild User Guide. */ public String getSourceVersion() { return this.sourceVersion; } /** *

            * Any version identifier for the version of the source code to be built. If sourceVersion is specified * at the project level, then this sourceVersion (at the build level) takes precedence. *

            *

            * For more information, see Source Version Sample * with CodeBuild in the CodeBuild User Guide. *

            * * @param sourceVersion * Any version identifier for the version of the source code to be built. If sourceVersion is * specified at the project level, then this sourceVersion (at the build level) takes * precedence.

            *

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

            * An identifier for the version of this build's source code. *

            *
              *
            • *

              * For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. *

              *
            • *
            • *

              * For CodePipeline, the source revision provided by CodePipeline. *

              *
            • *
            • *

              * For Amazon S3, this does not apply. *

              *
            • *
            * * @param resolvedSourceVersion * An identifier for the version of this build's source code.

            *
              *
            • *

              * For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. *

              *
            • *
            • *

              * For CodePipeline, the source revision provided by CodePipeline. *

              *
            • *
            • *

              * For Amazon S3, this does not apply. *

              *
            • */ public void setResolvedSourceVersion(String resolvedSourceVersion) { this.resolvedSourceVersion = resolvedSourceVersion; } /** *

              * An identifier for the version of this build's source code. *

              *
                *
              • *

                * For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. *

                *
              • *
              • *

                * For CodePipeline, the source revision provided by CodePipeline. *

                *
              • *
              • *

                * For Amazon S3, this does not apply. *

                *
              • *
              * * @return An identifier for the version of this build's source code.

              *
                *
              • *

                * For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. *

                *
              • *
              • *

                * For CodePipeline, the source revision provided by CodePipeline. *

                *
              • *
              • *

                * For Amazon S3, this does not apply. *

                *
              • */ public String getResolvedSourceVersion() { return this.resolvedSourceVersion; } /** *

                * An identifier for the version of this build's source code. *

                *
                  *
                • *

                  * For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. *

                  *
                • *
                • *

                  * For CodePipeline, the source revision provided by CodePipeline. *

                  *
                • *
                • *

                  * For Amazon S3, this does not apply. *

                  *
                • *
                * * @param resolvedSourceVersion * An identifier for the version of this build's source code.

                *
                  *
                • *

                  * For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. *

                  *
                • *
                • *

                  * For CodePipeline, the source revision provided by CodePipeline. *

                  *
                • *
                • *

                  * For Amazon S3, this does not apply. *

                  *
                • * @return Returns a reference to this object so that method calls can be chained together. */ public Build withResolvedSourceVersion(String resolvedSourceVersion) { setResolvedSourceVersion(resolvedSourceVersion); return this; } /** *

                  * The name of the CodeBuild project. *

                  * * @param projectName * The name of the CodeBuild project. */ public void setProjectName(String projectName) { this.projectName = projectName; } /** *

                  * The name of the CodeBuild project. *

                  * * @return The name of the CodeBuild project. */ public String getProjectName() { return this.projectName; } /** *

                  * The name of the CodeBuild project. *

                  * * @param projectName * The name of the CodeBuild project. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withProjectName(String projectName) { setProjectName(projectName); return this; } /** *

                  * Information about all previous build phases that are complete and information about any current build phase that * is not yet complete. *

                  * * @return Information about all previous build phases that are complete and information about any current build * phase that is not yet complete. */ public java.util.List getPhases() { return phases; } /** *

                  * Information about all previous build phases that are complete and information about any current build phase that * is not yet complete. *

                  * * @param phases * Information about all previous build phases that are complete and information about any current build * phase that is not yet complete. */ public void setPhases(java.util.Collection phases) { if (phases == null) { this.phases = null; return; } this.phases = new java.util.ArrayList(phases); } /** *

                  * Information about all previous build phases that are complete and information about any current build phase that * is not yet complete. *

                  *

                  * NOTE: This method appends the values to the existing list (if any). Use * {@link #setPhases(java.util.Collection)} or {@link #withPhases(java.util.Collection)} if you want to override the * existing values. *

                  * * @param phases * Information about all previous build phases that are complete and information about any current build * phase that is not yet complete. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withPhases(BuildPhase... phases) { if (this.phases == null) { setPhases(new java.util.ArrayList(phases.length)); } for (BuildPhase ele : phases) { this.phases.add(ele); } return this; } /** *

                  * Information about all previous build phases that are complete and information about any current build phase that * is not yet complete. *

                  * * @param phases * Information about all previous build phases that are complete and information about any current build * phase that is not yet complete. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withPhases(java.util.Collection phases) { setPhases(phases); return this; } /** *

                  * Information about the source code to be built. *

                  * * @param source * Information about the source code to be built. */ public void setSource(ProjectSource source) { this.source = source; } /** *

                  * Information about the source code to be built. *

                  * * @return Information about the source code to be built. */ public ProjectSource getSource() { return this.source; } /** *

                  * Information about the source code to be built. *

                  * * @param source * Information about the source code to be built. * @return Returns a reference to this object so that method calls can be chained together. */ public Build 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 Build 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 Build withSecondarySources(java.util.Collection secondarySources) { setSecondarySources(secondarySources); return this; } /** *

                  * An array of ProjectSourceVersion objects. Each ProjectSourceVersion 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. *

                    *
                  • *
                  * * @return An array of ProjectSourceVersion objects. Each ProjectSourceVersion 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. *

                    *
                  • */ public java.util.List getSecondarySourceVersions() { return secondarySourceVersions; } /** *

                    * An array of ProjectSourceVersion objects. Each ProjectSourceVersion 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. *

                      *
                    • *
                    * * @param secondarySourceVersions * An array of ProjectSourceVersion objects. Each ProjectSourceVersion 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. *

                      *
                    • */ 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. Each ProjectSourceVersion 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. *

                        *
                      • *
                      *

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

                        *
                      • * @return Returns a reference to this object so that method calls can be chained together. */ public Build 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. Each ProjectSourceVersion 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. *

                          *
                        • *
                        * * @param secondarySourceVersions * An array of ProjectSourceVersion objects. Each ProjectSourceVersion 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. *

                          *
                        • * @return Returns a reference to this object so that method calls can be chained together. */ public Build withSecondarySourceVersions(java.util.Collection secondarySourceVersions) { setSecondarySourceVersions(secondarySourceVersions); return this; } /** *

                          * Information about the output artifacts for the build. *

                          * * @param artifacts * Information about the output artifacts for the build. */ public void setArtifacts(BuildArtifacts artifacts) { this.artifacts = artifacts; } /** *

                          * Information about the output artifacts for the build. *

                          * * @return Information about the output artifacts for the build. */ public BuildArtifacts getArtifacts() { return this.artifacts; } /** *

                          * Information about the output artifacts for the build. *

                          * * @param artifacts * Information about the output artifacts for the build. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withArtifacts(BuildArtifacts 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 Build withSecondaryArtifacts(BuildArtifacts... secondaryArtifacts) { if (this.secondaryArtifacts == null) { setSecondaryArtifacts(new java.util.ArrayList(secondaryArtifacts.length)); } for (BuildArtifacts 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 Build withSecondaryArtifacts(java.util.Collection secondaryArtifacts) { setSecondaryArtifacts(secondaryArtifacts); return this; } /** *

                          * Information about the cache for the build. *

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

                          * Information about the cache for the build. *

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

                          * Information about the cache for the build. *

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

                          * Information about the build environment for this build. *

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

                          * Information about the build environment for this build. *

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

                          * Information about the build environment for this build. *

                          * * @param environment * Information about the build environment for this build. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withEnvironment(ProjectEnvironment environment) { setEnvironment(environment); return this; } /** *

                          * The name of a service role used for this build. *

                          * * @param serviceRole * The name of a service role used for this build. */ public void setServiceRole(String serviceRole) { this.serviceRole = serviceRole; } /** *

                          * The name of a service role used for this build. *

                          * * @return The name of a service role used for this build. */ public String getServiceRole() { return this.serviceRole; } /** *

                          * The name of a service role used for this build. *

                          * * @param serviceRole * The name of a service role used for this build. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withServiceRole(String serviceRole) { setServiceRole(serviceRole); return this; } /** *

                          * Information about the build's logs in CloudWatch Logs. *

                          * * @param logs * Information about the build's logs in CloudWatch Logs. */ public void setLogs(LogsLocation logs) { this.logs = logs; } /** *

                          * Information about the build's logs in CloudWatch Logs. *

                          * * @return Information about the build's logs in CloudWatch Logs. */ public LogsLocation getLogs() { return this.logs; } /** *

                          * Information about the build's logs in CloudWatch Logs. *

                          * * @param logs * Information about the build's logs in CloudWatch Logs. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withLogs(LogsLocation logs) { setLogs(logs); return this; } /** *

                          * How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed. *

                          * * @param timeoutInMinutes * How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as * completed. */ public void setTimeoutInMinutes(Integer timeoutInMinutes) { this.timeoutInMinutes = timeoutInMinutes; } /** *

                          * How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed. *

                          * * @return How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as * completed. */ public Integer getTimeoutInMinutes() { return this.timeoutInMinutes; } /** *

                          * How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed. *

                          * * @param timeoutInMinutes * How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as * completed. * @return Returns a reference to this object so that method calls can be chained together. */ public Build 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 Build withQueuedTimeoutInMinutes(Integer queuedTimeoutInMinutes) { setQueuedTimeoutInMinutes(queuedTimeoutInMinutes); return this; } /** *

                          * Whether the build is complete. True if complete; otherwise, false. *

                          * * @param buildComplete * Whether the build is complete. True if complete; otherwise, false. */ public void setBuildComplete(Boolean buildComplete) { this.buildComplete = buildComplete; } /** *

                          * Whether the build is complete. True if complete; otherwise, false. *

                          * * @return Whether the build is complete. True if complete; otherwise, false. */ public Boolean getBuildComplete() { return this.buildComplete; } /** *

                          * Whether the build is complete. True if complete; otherwise, false. *

                          * * @param buildComplete * Whether the build is complete. True if complete; otherwise, false. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withBuildComplete(Boolean buildComplete) { setBuildComplete(buildComplete); return this; } /** *

                          * Whether the build is complete. True if complete; otherwise, false. *

                          * * @return Whether the build is complete. True if complete; otherwise, false. */ public Boolean isBuildComplete() { return this.buildComplete; } /** *

                          * The entity that started the build. Valid values include: *

                          *
                            *
                          • *

                            * If CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). *

                            *
                          • *
                          • *

                            * If an IAM user started the build, the user's name (for example, MyUserName). *

                            *
                          • *
                          • *

                            * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

                            *
                          • *
                          * * @param initiator * The entity that started the build. Valid values include:

                          *
                            *
                          • *

                            * If CodePipeline started the build, the pipeline's name (for example, * codepipeline/my-demo-pipeline). *

                            *
                          • *
                          • *

                            * If an IAM user started the build, the user's name (for example, MyUserName). *

                            *
                          • *
                          • *

                            * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

                            *
                          • */ public void setInitiator(String initiator) { this.initiator = initiator; } /** *

                            * The entity that started the build. Valid values include: *

                            *
                              *
                            • *

                              * If CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). *

                              *
                            • *
                            • *

                              * If an IAM user started the build, the user's name (for example, MyUserName). *

                              *
                            • *
                            • *

                              * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

                              *
                            • *
                            * * @return The entity that started the build. Valid values include:

                            *
                              *
                            • *

                              * If CodePipeline started the build, the pipeline's name (for example, * codepipeline/my-demo-pipeline). *

                              *
                            • *
                            • *

                              * If an IAM user started the build, the user's name (for example, MyUserName). *

                              *
                            • *
                            • *

                              * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

                              *
                            • */ public String getInitiator() { return this.initiator; } /** *

                              * The entity that started the build. Valid values include: *

                              *
                                *
                              • *

                                * If CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). *

                                *
                              • *
                              • *

                                * If an IAM user started the build, the user's name (for example, MyUserName). *

                                *
                              • *
                              • *

                                * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

                                *
                              • *
                              * * @param initiator * The entity that started the build. Valid values include:

                              *
                                *
                              • *

                                * If CodePipeline started the build, the pipeline's name (for example, * codepipeline/my-demo-pipeline). *

                                *
                              • *
                              • *

                                * If an IAM user started the build, the user's name (for example, MyUserName). *

                                *
                              • *
                              • *

                                * If the Jenkins plugin for CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. *

                                *
                              • * @return Returns a reference to this object so that method calls can be chained together. */ public Build withInitiator(String initiator) { setInitiator(initiator); return this; } /** *

                                * If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC * ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same * VPC. You must provide at least one security group and one subnet ID. *

                                * * @param vpcConfig * If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies * the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong * to the same VPC. You must provide at least one security group and one subnet ID. */ public void setVpcConfig(VpcConfig vpcConfig) { this.vpcConfig = vpcConfig; } /** *

                                * If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC * ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same * VPC. You must provide at least one security group and one subnet ID. *

                                * * @return If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies * the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong * to the same VPC. You must provide at least one security group and one subnet ID. */ public VpcConfig getVpcConfig() { return this.vpcConfig; } /** *

                                * If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC * ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same * VPC. You must provide at least one security group and one subnet ID. *

                                * * @param vpcConfig * If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies * the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong * to the same VPC. You must provide at least one security group and one subnet ID. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withVpcConfig(VpcConfig vpcConfig) { setVpcConfig(vpcConfig); return this; } /** *

                                * Describes a network interface. *

                                * * @param networkInterface * Describes a network interface. */ public void setNetworkInterface(NetworkInterface networkInterface) { this.networkInterface = networkInterface; } /** *

                                * Describes a network interface. *

                                * * @return Describes a network interface. */ public NetworkInterface getNetworkInterface() { return this.networkInterface; } /** *

                                * Describes a network interface. *

                                * * @param networkInterface * Describes a network interface. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withNetworkInterface(NetworkInterface networkInterface) { setNetworkInterface(networkInterface); 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>). *

                                * * @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>). */ 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>). *

                                * * @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>). */ 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>). *

                                * * @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>). * @return Returns a reference to this object so that method calls can be chained together. */ public Build withEncryptionKey(String encryptionKey) { setEncryptionKey(encryptionKey); return this; } /** *

                                * A list of exported environment variables for this build. *

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables from the * current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. *

                                * * @return A list of exported environment variables for this build.

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables * from the current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. */ public java.util.List getExportedEnvironmentVariables() { return exportedEnvironmentVariables; } /** *

                                * A list of exported environment variables for this build. *

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables from the * current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. *

                                * * @param exportedEnvironmentVariables * A list of exported environment variables for this build.

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables * from the current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. */ public void setExportedEnvironmentVariables(java.util.Collection exportedEnvironmentVariables) { if (exportedEnvironmentVariables == null) { this.exportedEnvironmentVariables = null; return; } this.exportedEnvironmentVariables = new java.util.ArrayList(exportedEnvironmentVariables); } /** *

                                * A list of exported environment variables for this build. *

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables from the * current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. *

                                *

                                * NOTE: This method appends the values to the existing list (if any). Use * {@link #setExportedEnvironmentVariables(java.util.Collection)} or * {@link #withExportedEnvironmentVariables(java.util.Collection)} if you want to override the existing values. *

                                * * @param exportedEnvironmentVariables * A list of exported environment variables for this build.

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables * from the current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withExportedEnvironmentVariables(ExportedEnvironmentVariable... exportedEnvironmentVariables) { if (this.exportedEnvironmentVariables == null) { setExportedEnvironmentVariables(new java.util.ArrayList(exportedEnvironmentVariables.length)); } for (ExportedEnvironmentVariable ele : exportedEnvironmentVariables) { this.exportedEnvironmentVariables.add(ele); } return this; } /** *

                                * A list of exported environment variables for this build. *

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables from the * current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. *

                                * * @param exportedEnvironmentVariables * A list of exported environment variables for this build.

                                *

                                * Exported environment variables are used in conjunction with CodePipeline to export environment variables * from the current build stage to subsequent stages in the pipeline. For more information, see Working with * variables in the CodePipeline User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withExportedEnvironmentVariables(java.util.Collection exportedEnvironmentVariables) { setExportedEnvironmentVariables(exportedEnvironmentVariables); return this; } /** *

                                * An array of the ARNs associated with this build's reports. *

                                * * @return An array of the ARNs associated with this build's reports. */ public java.util.List getReportArns() { return reportArns; } /** *

                                * An array of the ARNs associated with this build's reports. *

                                * * @param reportArns * An array of the ARNs associated with this build's reports. */ public void setReportArns(java.util.Collection reportArns) { if (reportArns == null) { this.reportArns = null; return; } this.reportArns = new java.util.ArrayList(reportArns); } /** *

                                * An array of the ARNs associated with this build's reports. *

                                *

                                * NOTE: This method appends the values to the existing list (if any). Use * {@link #setReportArns(java.util.Collection)} or {@link #withReportArns(java.util.Collection)} if you want to * override the existing values. *

                                * * @param reportArns * An array of the ARNs associated with this build's reports. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withReportArns(String... reportArns) { if (this.reportArns == null) { setReportArns(new java.util.ArrayList(reportArns.length)); } for (String ele : reportArns) { this.reportArns.add(ele); } return this; } /** *

                                * An array of the ARNs associated with this build's reports. *

                                * * @param reportArns * An array of the ARNs associated with this build's reports. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withReportArns(java.util.Collection reportArns) { setReportArns(reportArns); 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 Build 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 Build withFileSystemLocations(java.util.Collection fileSystemLocations) { setFileSystemLocations(fileSystemLocations); return this; } /** *

                                * Contains information about the debug session for this build. *

                                * * @param debugSession * Contains information about the debug session for this build. */ public void setDebugSession(DebugSession debugSession) { this.debugSession = debugSession; } /** *

                                * Contains information about the debug session for this build. *

                                * * @return Contains information about the debug session for this build. */ public DebugSession getDebugSession() { return this.debugSession; } /** *

                                * Contains information about the debug session for this build. *

                                * * @param debugSession * Contains information about the debug session for this build. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withDebugSession(DebugSession debugSession) { setDebugSession(debugSession); return this; } /** *

                                * The ARN of the batch build that this build is a member of, if applicable. *

                                * * @param buildBatchArn * The ARN of the batch build that this build is a member of, if applicable. */ public void setBuildBatchArn(String buildBatchArn) { this.buildBatchArn = buildBatchArn; } /** *

                                * The ARN of the batch build that this build is a member of, if applicable. *

                                * * @return The ARN of the batch build that this build is a member of, if applicable. */ public String getBuildBatchArn() { return this.buildBatchArn; } /** *

                                * The ARN of the batch build that this build is a member of, if applicable. *

                                * * @param buildBatchArn * The ARN of the batch build that this build is a member of, if applicable. * @return Returns a reference to this object so that method calls can be chained together. */ public Build withBuildBatchArn(String buildBatchArn) { setBuildBatchArn(buildBatchArn); 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 (getId() != null) sb.append("Id: ").append(getId()).append(","); if (getArn() != null) sb.append("Arn: ").append(getArn()).append(","); if (getBuildNumber() != null) sb.append("BuildNumber: ").append(getBuildNumber()).append(","); if (getStartTime() != null) sb.append("StartTime: ").append(getStartTime()).append(","); if (getEndTime() != null) sb.append("EndTime: ").append(getEndTime()).append(","); if (getCurrentPhase() != null) sb.append("CurrentPhase: ").append(getCurrentPhase()).append(","); if (getBuildStatus() != null) sb.append("BuildStatus: ").append(getBuildStatus()).append(","); if (getSourceVersion() != null) sb.append("SourceVersion: ").append(getSourceVersion()).append(","); if (getResolvedSourceVersion() != null) sb.append("ResolvedSourceVersion: ").append(getResolvedSourceVersion()).append(","); if (getProjectName() != null) sb.append("ProjectName: ").append(getProjectName()).append(","); if (getPhases() != null) sb.append("Phases: ").append(getPhases()).append(","); if (getSource() != null) sb.append("Source: ").append(getSource()).append(","); if (getSecondarySources() != null) sb.append("SecondarySources: ").append(getSecondarySources()).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 (getLogs() != null) sb.append("Logs: ").append(getLogs()).append(","); if (getTimeoutInMinutes() != null) sb.append("TimeoutInMinutes: ").append(getTimeoutInMinutes()).append(","); if (getQueuedTimeoutInMinutes() != null) sb.append("QueuedTimeoutInMinutes: ").append(getQueuedTimeoutInMinutes()).append(","); if (getBuildComplete() != null) sb.append("BuildComplete: ").append(getBuildComplete()).append(","); if (getInitiator() != null) sb.append("Initiator: ").append(getInitiator()).append(","); if (getVpcConfig() != null) sb.append("VpcConfig: ").append(getVpcConfig()).append(","); if (getNetworkInterface() != null) sb.append("NetworkInterface: ").append(getNetworkInterface()).append(","); if (getEncryptionKey() != null) sb.append("EncryptionKey: ").append(getEncryptionKey()).append(","); if (getExportedEnvironmentVariables() != null) sb.append("ExportedEnvironmentVariables: ").append(getExportedEnvironmentVariables()).append(","); if (getReportArns() != null) sb.append("ReportArns: ").append(getReportArns()).append(","); if (getFileSystemLocations() != null) sb.append("FileSystemLocations: ").append(getFileSystemLocations()).append(","); if (getDebugSession() != null) sb.append("DebugSession: ").append(getDebugSession()).append(","); if (getBuildBatchArn() != null) sb.append("BuildBatchArn: ").append(getBuildBatchArn()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Build == false) return false; Build other = (Build) obj; if (other.getId() == null ^ this.getId() == null) return false; if (other.getId() != null && other.getId().equals(this.getId()) == 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.getBuildNumber() == null ^ this.getBuildNumber() == null) return false; if (other.getBuildNumber() != null && other.getBuildNumber().equals(this.getBuildNumber()) == false) return false; if (other.getStartTime() == null ^ this.getStartTime() == null) return false; if (other.getStartTime() != null && other.getStartTime().equals(this.getStartTime()) == false) return false; if (other.getEndTime() == null ^ this.getEndTime() == null) return false; if (other.getEndTime() != null && other.getEndTime().equals(this.getEndTime()) == false) return false; if (other.getCurrentPhase() == null ^ this.getCurrentPhase() == null) return false; if (other.getCurrentPhase() != null && other.getCurrentPhase().equals(this.getCurrentPhase()) == false) return false; if (other.getBuildStatus() == null ^ this.getBuildStatus() == null) return false; if (other.getBuildStatus() != null && other.getBuildStatus().equals(this.getBuildStatus()) == 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.getResolvedSourceVersion() == null ^ this.getResolvedSourceVersion() == null) return false; if (other.getResolvedSourceVersion() != null && other.getResolvedSourceVersion().equals(this.getResolvedSourceVersion()) == false) return false; if (other.getProjectName() == null ^ this.getProjectName() == null) return false; if (other.getProjectName() != null && other.getProjectName().equals(this.getProjectName()) == false) return false; if (other.getPhases() == null ^ this.getPhases() == null) return false; if (other.getPhases() != null && other.getPhases().equals(this.getPhases()) == 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.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.getLogs() == null ^ this.getLogs() == null) return false; if (other.getLogs() != null && other.getLogs().equals(this.getLogs()) == 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.getBuildComplete() == null ^ this.getBuildComplete() == null) return false; if (other.getBuildComplete() != null && other.getBuildComplete().equals(this.getBuildComplete()) == false) return false; if (other.getInitiator() == null ^ this.getInitiator() == null) return false; if (other.getInitiator() != null && other.getInitiator().equals(this.getInitiator()) == 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.getNetworkInterface() == null ^ this.getNetworkInterface() == null) return false; if (other.getNetworkInterface() != null && other.getNetworkInterface().equals(this.getNetworkInterface()) == 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.getExportedEnvironmentVariables() == null ^ this.getExportedEnvironmentVariables() == null) return false; if (other.getExportedEnvironmentVariables() != null && other.getExportedEnvironmentVariables().equals(this.getExportedEnvironmentVariables()) == false) return false; if (other.getReportArns() == null ^ this.getReportArns() == null) return false; if (other.getReportArns() != null && other.getReportArns().equals(this.getReportArns()) == 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.getDebugSession() == null ^ this.getDebugSession() == null) return false; if (other.getDebugSession() != null && other.getDebugSession().equals(this.getDebugSession()) == false) return false; if (other.getBuildBatchArn() == null ^ this.getBuildBatchArn() == null) return false; if (other.getBuildBatchArn() != null && other.getBuildBatchArn().equals(this.getBuildBatchArn()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getId() == null) ? 0 : getId().hashCode()); hashCode = prime * hashCode + ((getArn() == null) ? 0 : getArn().hashCode()); hashCode = prime * hashCode + ((getBuildNumber() == null) ? 0 : getBuildNumber().hashCode()); hashCode = prime * hashCode + ((getStartTime() == null) ? 0 : getStartTime().hashCode()); hashCode = prime * hashCode + ((getEndTime() == null) ? 0 : getEndTime().hashCode()); hashCode = prime * hashCode + ((getCurrentPhase() == null) ? 0 : getCurrentPhase().hashCode()); hashCode = prime * hashCode + ((getBuildStatus() == null) ? 0 : getBuildStatus().hashCode()); hashCode = prime * hashCode + ((getSourceVersion() == null) ? 0 : getSourceVersion().hashCode()); hashCode = prime * hashCode + ((getResolvedSourceVersion() == null) ? 0 : getResolvedSourceVersion().hashCode()); hashCode = prime * hashCode + ((getProjectName() == null) ? 0 : getProjectName().hashCode()); hashCode = prime * hashCode + ((getPhases() == null) ? 0 : getPhases().hashCode()); hashCode = prime * hashCode + ((getSource() == null) ? 0 : getSource().hashCode()); hashCode = prime * hashCode + ((getSecondarySources() == null) ? 0 : getSecondarySources().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 + ((getLogs() == null) ? 0 : getLogs().hashCode()); hashCode = prime * hashCode + ((getTimeoutInMinutes() == null) ? 0 : getTimeoutInMinutes().hashCode()); hashCode = prime * hashCode + ((getQueuedTimeoutInMinutes() == null) ? 0 : getQueuedTimeoutInMinutes().hashCode()); hashCode = prime * hashCode + ((getBuildComplete() == null) ? 0 : getBuildComplete().hashCode()); hashCode = prime * hashCode + ((getInitiator() == null) ? 0 : getInitiator().hashCode()); hashCode = prime * hashCode + ((getVpcConfig() == null) ? 0 : getVpcConfig().hashCode()); hashCode = prime * hashCode + ((getNetworkInterface() == null) ? 0 : getNetworkInterface().hashCode()); hashCode = prime * hashCode + ((getEncryptionKey() == null) ? 0 : getEncryptionKey().hashCode()); hashCode = prime * hashCode + ((getExportedEnvironmentVariables() == null) ? 0 : getExportedEnvironmentVariables().hashCode()); hashCode = prime * hashCode + ((getReportArns() == null) ? 0 : getReportArns().hashCode()); hashCode = prime * hashCode + ((getFileSystemLocations() == null) ? 0 : getFileSystemLocations().hashCode()); hashCode = prime * hashCode + ((getDebugSession() == null) ? 0 : getDebugSession().hashCode()); hashCode = prime * hashCode + ((getBuildBatchArn() == null) ? 0 : getBuildBatchArn().hashCode()); return hashCode; } @Override public Build clone() { try { return (Build) 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.BuildMarshaller.getInstance().marshall(this, protocolMarshaller); } }