All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.codebuild.inputs.ProjectState Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.codebuild.inputs;

import com.pulumi.aws.codebuild.inputs.ProjectArtifactsArgs;
import com.pulumi.aws.codebuild.inputs.ProjectBuildBatchConfigArgs;
import com.pulumi.aws.codebuild.inputs.ProjectCacheArgs;
import com.pulumi.aws.codebuild.inputs.ProjectEnvironmentArgs;
import com.pulumi.aws.codebuild.inputs.ProjectFileSystemLocationArgs;
import com.pulumi.aws.codebuild.inputs.ProjectLogsConfigArgs;
import com.pulumi.aws.codebuild.inputs.ProjectSecondaryArtifactArgs;
import com.pulumi.aws.codebuild.inputs.ProjectSecondarySourceArgs;
import com.pulumi.aws.codebuild.inputs.ProjectSecondarySourceVersionArgs;
import com.pulumi.aws.codebuild.inputs.ProjectSourceArgs;
import com.pulumi.aws.codebuild.inputs.ProjectVpcConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ProjectState extends com.pulumi.resources.ResourceArgs {

    public static final ProjectState Empty = new ProjectState();

    /**
     * ARN of the CodeBuild project.
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return ARN of the CodeBuild project.
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="artifacts")
    private @Nullable Output artifacts;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional> artifacts() {
        return Optional.ofNullable(this.artifacts);
    }

    /**
     * Generates a publicly-accessible URL for the projects build badge. Available as `badge_url` attribute when enabled.
     * 
     */
    @Import(name="badgeEnabled")
    private @Nullable Output badgeEnabled;

    /**
     * @return Generates a publicly-accessible URL for the projects build badge. Available as `badge_url` attribute when enabled.
     * 
     */
    public Optional> badgeEnabled() {
        return Optional.ofNullable(this.badgeEnabled);
    }

    /**
     * URL of the build badge when `badge_enabled` is enabled.
     * 
     */
    @Import(name="badgeUrl")
    private @Nullable Output badgeUrl;

    /**
     * @return URL of the build badge when `badge_enabled` is enabled.
     * 
     */
    public Optional> badgeUrl() {
        return Optional.ofNullable(this.badgeUrl);
    }

    /**
     * Defines the batch build options for the project.
     * 
     */
    @Import(name="buildBatchConfig")
    private @Nullable Output buildBatchConfig;

    /**
     * @return Defines the batch build options for the project.
     * 
     */
    public Optional> buildBatchConfig() {
        return Optional.ofNullable(this.buildBatchConfig);
    }

    /**
     * Number of minutes, from 5 to 2160 (36 hours), for AWS CodeBuild to wait until timing out any related build that does not get marked as completed. The default is 60 minutes. The `build_timeout` property is not available on the `Lambda` compute type.
     * 
     */
    @Import(name="buildTimeout")
    private @Nullable Output buildTimeout;

    /**
     * @return Number of minutes, from 5 to 2160 (36 hours), for AWS CodeBuild to wait until timing out any related build that does not get marked as completed. The default is 60 minutes. The `build_timeout` property is not available on the `Lambda` compute type.
     * 
     */
    public Optional> buildTimeout() {
        return Optional.ofNullable(this.buildTimeout);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="cache")
    private @Nullable Output cache;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional> cache() {
        return Optional.ofNullable(this.cache);
    }

    /**
     * Specify a maximum number of concurrent builds for the project. The value specified must be greater than 0 and less than the account concurrent running builds limit.
     * 
     */
    @Import(name="concurrentBuildLimit")
    private @Nullable Output concurrentBuildLimit;

    /**
     * @return Specify a maximum number of concurrent builds for the project. The value specified must be greater than 0 and less than the account concurrent running builds limit.
     * 
     */
    public Optional> concurrentBuildLimit() {
        return Optional.ofNullable(this.concurrentBuildLimit);
    }

    /**
     * Short description of the project.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Short description of the project.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build project's build output artifacts.
     * 
     */
    @Import(name="encryptionKey")
    private @Nullable Output encryptionKey;

    /**
     * @return AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build project's build output artifacts.
     * 
     */
    public Optional> encryptionKey() {
        return Optional.ofNullable(this.encryptionKey);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="environment")
    private @Nullable Output environment;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional> environment() {
        return Optional.ofNullable(this.environment);
    }

    /**
     * A set of file system locations to mount inside the build. File system locations are documented below.
     * 
     */
    @Import(name="fileSystemLocations")
    private @Nullable Output> fileSystemLocations;

    /**
     * @return A set of file system locations to mount inside the build. File system locations are documented below.
     * 
     */
    public Optional>> fileSystemLocations() {
        return Optional.ofNullable(this.fileSystemLocations);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="logsConfig")
    private @Nullable Output logsConfig;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional> logsConfig() {
        return Optional.ofNullable(this.logsConfig);
    }

    /**
     * Project's name.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Project's name.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Specifies the visibility of the project's builds. Possible values are: `PUBLIC_READ` and `PRIVATE`. Default value is `PRIVATE`.
     * 
     */
    @Import(name="projectVisibility")
    private @Nullable Output projectVisibility;

    /**
     * @return Specifies the visibility of the project's builds. Possible values are: `PUBLIC_READ` and `PRIVATE`. Default value is `PRIVATE`.
     * 
     */
    public Optional> projectVisibility() {
        return Optional.ofNullable(this.projectVisibility);
    }

    /**
     * The project identifier used with the public build APIs.
     * 
     */
    @Import(name="publicProjectAlias")
    private @Nullable Output publicProjectAlias;

    /**
     * @return The project identifier used with the public build APIs.
     * 
     */
    public Optional> publicProjectAlias() {
        return Optional.ofNullable(this.publicProjectAlias);
    }

    /**
     * Number of minutes, from 5 to 480 (8 hours), a build is allowed to be queued before it times out. The default is 8 hours. The `queued_timeout` property is not available on the `Lambda` compute type.
     * 
     */
    @Import(name="queuedTimeout")
    private @Nullable Output queuedTimeout;

    /**
     * @return Number of minutes, from 5 to 480 (8 hours), a build is allowed to be queued before it times out. The default is 8 hours. The `queued_timeout` property is not available on the `Lambda` compute type.
     * 
     */
    public Optional> queuedTimeout() {
        return Optional.ofNullable(this.queuedTimeout);
    }

    /**
     * The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project's builds in order to display them publicly. Only applicable if `project_visibility` is `PUBLIC_READ`.
     * 
     */
    @Import(name="resourceAccessRole")
    private @Nullable Output resourceAccessRole;

    /**
     * @return The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project's builds in order to display them publicly. Only applicable if `project_visibility` is `PUBLIC_READ`.
     * 
     */
    public Optional> resourceAccessRole() {
        return Optional.ofNullable(this.resourceAccessRole);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="secondaryArtifacts")
    private @Nullable Output> secondaryArtifacts;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional>> secondaryArtifacts() {
        return Optional.ofNullable(this.secondaryArtifacts);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="secondarySourceVersions")
    private @Nullable Output> secondarySourceVersions;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional>> secondarySourceVersions() {
        return Optional.ofNullable(this.secondarySourceVersions);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="secondarySources")
    private @Nullable Output> secondarySources;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional>> secondarySources() {
        return Optional.ofNullable(this.secondarySources);
    }

    /**
     * Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.
     * 
     */
    @Import(name="serviceRole")
    private @Nullable Output serviceRole;

    /**
     * @return Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.
     * 
     */
    public Optional> serviceRole() {
        return Optional.ofNullable(this.serviceRole);
    }

    /**
     * Configuration block. Detailed below.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="source")
    private @Nullable Output source;

    /**
     * @return Configuration block. Detailed below.
     * 
     * The following arguments are optional:
     * 
     */
    public Optional> source() {
        return Optional.ofNullable(this.source);
    }

    /**
     * Version of the build input to be built for this project. If not specified, the latest version is used.
     * 
     */
    @Import(name="sourceVersion")
    private @Nullable Output sourceVersion;

    /**
     * @return Version of the build input to be built for this project. If not specified, the latest version is used.
     * 
     */
    public Optional> sourceVersion() {
        return Optional.ofNullable(this.sourceVersion);
    }

    /**
     * Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    @Import(name="tagsAll")
    private @Nullable Output> tagsAll;

    /**
     * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    public Optional>> tagsAll() {
        return Optional.ofNullable(this.tagsAll);
    }

    /**
     * Configuration block. Detailed below.
     * 
     */
    @Import(name="vpcConfig")
    private @Nullable Output vpcConfig;

    /**
     * @return Configuration block. Detailed below.
     * 
     */
    public Optional> vpcConfig() {
        return Optional.ofNullable(this.vpcConfig);
    }

    private ProjectState() {}

    private ProjectState(ProjectState $) {
        this.arn = $.arn;
        this.artifacts = $.artifacts;
        this.badgeEnabled = $.badgeEnabled;
        this.badgeUrl = $.badgeUrl;
        this.buildBatchConfig = $.buildBatchConfig;
        this.buildTimeout = $.buildTimeout;
        this.cache = $.cache;
        this.concurrentBuildLimit = $.concurrentBuildLimit;
        this.description = $.description;
        this.encryptionKey = $.encryptionKey;
        this.environment = $.environment;
        this.fileSystemLocations = $.fileSystemLocations;
        this.logsConfig = $.logsConfig;
        this.name = $.name;
        this.projectVisibility = $.projectVisibility;
        this.publicProjectAlias = $.publicProjectAlias;
        this.queuedTimeout = $.queuedTimeout;
        this.resourceAccessRole = $.resourceAccessRole;
        this.secondaryArtifacts = $.secondaryArtifacts;
        this.secondarySourceVersions = $.secondarySourceVersions;
        this.secondarySources = $.secondarySources;
        this.serviceRole = $.serviceRole;
        this.source = $.source;
        this.sourceVersion = $.sourceVersion;
        this.tags = $.tags;
        this.tagsAll = $.tagsAll;
        this.vpcConfig = $.vpcConfig;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ProjectState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ProjectState $;

        public Builder() {
            $ = new ProjectState();
        }

        public Builder(ProjectState defaults) {
            $ = new ProjectState(Objects.requireNonNull(defaults));
        }

        /**
         * @param arn ARN of the CodeBuild project.
         * 
         * @return builder
         * 
         */
        public Builder arn(@Nullable Output arn) {
            $.arn = arn;
            return this;
        }

        /**
         * @param arn ARN of the CodeBuild project.
         * 
         * @return builder
         * 
         */
        public Builder arn(String arn) {
            return arn(Output.of(arn));
        }

        /**
         * @param artifacts Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder artifacts(@Nullable Output artifacts) {
            $.artifacts = artifacts;
            return this;
        }

        /**
         * @param artifacts Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder artifacts(ProjectArtifactsArgs artifacts) {
            return artifacts(Output.of(artifacts));
        }

        /**
         * @param badgeEnabled Generates a publicly-accessible URL for the projects build badge. Available as `badge_url` attribute when enabled.
         * 
         * @return builder
         * 
         */
        public Builder badgeEnabled(@Nullable Output badgeEnabled) {
            $.badgeEnabled = badgeEnabled;
            return this;
        }

        /**
         * @param badgeEnabled Generates a publicly-accessible URL for the projects build badge. Available as `badge_url` attribute when enabled.
         * 
         * @return builder
         * 
         */
        public Builder badgeEnabled(Boolean badgeEnabled) {
            return badgeEnabled(Output.of(badgeEnabled));
        }

        /**
         * @param badgeUrl URL of the build badge when `badge_enabled` is enabled.
         * 
         * @return builder
         * 
         */
        public Builder badgeUrl(@Nullable Output badgeUrl) {
            $.badgeUrl = badgeUrl;
            return this;
        }

        /**
         * @param badgeUrl URL of the build badge when `badge_enabled` is enabled.
         * 
         * @return builder
         * 
         */
        public Builder badgeUrl(String badgeUrl) {
            return badgeUrl(Output.of(badgeUrl));
        }

        /**
         * @param buildBatchConfig Defines the batch build options for the project.
         * 
         * @return builder
         * 
         */
        public Builder buildBatchConfig(@Nullable Output buildBatchConfig) {
            $.buildBatchConfig = buildBatchConfig;
            return this;
        }

        /**
         * @param buildBatchConfig Defines the batch build options for the project.
         * 
         * @return builder
         * 
         */
        public Builder buildBatchConfig(ProjectBuildBatchConfigArgs buildBatchConfig) {
            return buildBatchConfig(Output.of(buildBatchConfig));
        }

        /**
         * @param buildTimeout Number of minutes, from 5 to 2160 (36 hours), for AWS CodeBuild to wait until timing out any related build that does not get marked as completed. The default is 60 minutes. The `build_timeout` property is not available on the `Lambda` compute type.
         * 
         * @return builder
         * 
         */
        public Builder buildTimeout(@Nullable Output buildTimeout) {
            $.buildTimeout = buildTimeout;
            return this;
        }

        /**
         * @param buildTimeout Number of minutes, from 5 to 2160 (36 hours), for AWS CodeBuild to wait until timing out any related build that does not get marked as completed. The default is 60 minutes. The `build_timeout` property is not available on the `Lambda` compute type.
         * 
         * @return builder
         * 
         */
        public Builder buildTimeout(Integer buildTimeout) {
            return buildTimeout(Output.of(buildTimeout));
        }

        /**
         * @param cache Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder cache(@Nullable Output cache) {
            $.cache = cache;
            return this;
        }

        /**
         * @param cache Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder cache(ProjectCacheArgs cache) {
            return cache(Output.of(cache));
        }

        /**
         * @param concurrentBuildLimit Specify a maximum number of concurrent builds for the project. The value specified must be greater than 0 and less than the account concurrent running builds limit.
         * 
         * @return builder
         * 
         */
        public Builder concurrentBuildLimit(@Nullable Output concurrentBuildLimit) {
            $.concurrentBuildLimit = concurrentBuildLimit;
            return this;
        }

        /**
         * @param concurrentBuildLimit Specify a maximum number of concurrent builds for the project. The value specified must be greater than 0 and less than the account concurrent running builds limit.
         * 
         * @return builder
         * 
         */
        public Builder concurrentBuildLimit(Integer concurrentBuildLimit) {
            return concurrentBuildLimit(Output.of(concurrentBuildLimit));
        }

        /**
         * @param description Short description of the project.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Short description of the project.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param encryptionKey AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build project's build output artifacts.
         * 
         * @return builder
         * 
         */
        public Builder encryptionKey(@Nullable Output encryptionKey) {
            $.encryptionKey = encryptionKey;
            return this;
        }

        /**
         * @param encryptionKey AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build project's build output artifacts.
         * 
         * @return builder
         * 
         */
        public Builder encryptionKey(String encryptionKey) {
            return encryptionKey(Output.of(encryptionKey));
        }

        /**
         * @param environment Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder environment(@Nullable Output environment) {
            $.environment = environment;
            return this;
        }

        /**
         * @param environment Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder environment(ProjectEnvironmentArgs environment) {
            return environment(Output.of(environment));
        }

        /**
         * @param fileSystemLocations A set of file system locations to mount inside the build. File system locations are documented below.
         * 
         * @return builder
         * 
         */
        public Builder fileSystemLocations(@Nullable Output> fileSystemLocations) {
            $.fileSystemLocations = fileSystemLocations;
            return this;
        }

        /**
         * @param fileSystemLocations A set of file system locations to mount inside the build. File system locations are documented below.
         * 
         * @return builder
         * 
         */
        public Builder fileSystemLocations(List fileSystemLocations) {
            return fileSystemLocations(Output.of(fileSystemLocations));
        }

        /**
         * @param fileSystemLocations A set of file system locations to mount inside the build. File system locations are documented below.
         * 
         * @return builder
         * 
         */
        public Builder fileSystemLocations(ProjectFileSystemLocationArgs... fileSystemLocations) {
            return fileSystemLocations(List.of(fileSystemLocations));
        }

        /**
         * @param logsConfig Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder logsConfig(@Nullable Output logsConfig) {
            $.logsConfig = logsConfig;
            return this;
        }

        /**
         * @param logsConfig Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder logsConfig(ProjectLogsConfigArgs logsConfig) {
            return logsConfig(Output.of(logsConfig));
        }

        /**
         * @param name Project's name.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Project's name.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param projectVisibility Specifies the visibility of the project's builds. Possible values are: `PUBLIC_READ` and `PRIVATE`. Default value is `PRIVATE`.
         * 
         * @return builder
         * 
         */
        public Builder projectVisibility(@Nullable Output projectVisibility) {
            $.projectVisibility = projectVisibility;
            return this;
        }

        /**
         * @param projectVisibility Specifies the visibility of the project's builds. Possible values are: `PUBLIC_READ` and `PRIVATE`. Default value is `PRIVATE`.
         * 
         * @return builder
         * 
         */
        public Builder projectVisibility(String projectVisibility) {
            return projectVisibility(Output.of(projectVisibility));
        }

        /**
         * @param publicProjectAlias The project identifier used with the public build APIs.
         * 
         * @return builder
         * 
         */
        public Builder publicProjectAlias(@Nullable Output publicProjectAlias) {
            $.publicProjectAlias = publicProjectAlias;
            return this;
        }

        /**
         * @param publicProjectAlias The project identifier used with the public build APIs.
         * 
         * @return builder
         * 
         */
        public Builder publicProjectAlias(String publicProjectAlias) {
            return publicProjectAlias(Output.of(publicProjectAlias));
        }

        /**
         * @param queuedTimeout Number of minutes, from 5 to 480 (8 hours), a build is allowed to be queued before it times out. The default is 8 hours. The `queued_timeout` property is not available on the `Lambda` compute type.
         * 
         * @return builder
         * 
         */
        public Builder queuedTimeout(@Nullable Output queuedTimeout) {
            $.queuedTimeout = queuedTimeout;
            return this;
        }

        /**
         * @param queuedTimeout Number of minutes, from 5 to 480 (8 hours), a build is allowed to be queued before it times out. The default is 8 hours. The `queued_timeout` property is not available on the `Lambda` compute type.
         * 
         * @return builder
         * 
         */
        public Builder queuedTimeout(Integer queuedTimeout) {
            return queuedTimeout(Output.of(queuedTimeout));
        }

        /**
         * @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 in order to display them publicly. Only applicable if `project_visibility` is `PUBLIC_READ`.
         * 
         * @return builder
         * 
         */
        public Builder resourceAccessRole(@Nullable Output resourceAccessRole) {
            $.resourceAccessRole = resourceAccessRole;
            return this;
        }

        /**
         * @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 in order to display them publicly. Only applicable if `project_visibility` is `PUBLIC_READ`.
         * 
         * @return builder
         * 
         */
        public Builder resourceAccessRole(String resourceAccessRole) {
            return resourceAccessRole(Output.of(resourceAccessRole));
        }

        /**
         * @param secondaryArtifacts Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondaryArtifacts(@Nullable Output> secondaryArtifacts) {
            $.secondaryArtifacts = secondaryArtifacts;
            return this;
        }

        /**
         * @param secondaryArtifacts Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondaryArtifacts(List secondaryArtifacts) {
            return secondaryArtifacts(Output.of(secondaryArtifacts));
        }

        /**
         * @param secondaryArtifacts Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondaryArtifacts(ProjectSecondaryArtifactArgs... secondaryArtifacts) {
            return secondaryArtifacts(List.of(secondaryArtifacts));
        }

        /**
         * @param secondarySourceVersions Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondarySourceVersions(@Nullable Output> secondarySourceVersions) {
            $.secondarySourceVersions = secondarySourceVersions;
            return this;
        }

        /**
         * @param secondarySourceVersions Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondarySourceVersions(List secondarySourceVersions) {
            return secondarySourceVersions(Output.of(secondarySourceVersions));
        }

        /**
         * @param secondarySourceVersions Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondarySourceVersions(ProjectSecondarySourceVersionArgs... secondarySourceVersions) {
            return secondarySourceVersions(List.of(secondarySourceVersions));
        }

        /**
         * @param secondarySources Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondarySources(@Nullable Output> secondarySources) {
            $.secondarySources = secondarySources;
            return this;
        }

        /**
         * @param secondarySources Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondarySources(List secondarySources) {
            return secondarySources(Output.of(secondarySources));
        }

        /**
         * @param secondarySources Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder secondarySources(ProjectSecondarySourceArgs... secondarySources) {
            return secondarySources(List.of(secondarySources));
        }

        /**
         * @param serviceRole Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.
         * 
         * @return builder
         * 
         */
        public Builder serviceRole(@Nullable Output serviceRole) {
            $.serviceRole = serviceRole;
            return this;
        }

        /**
         * @param serviceRole Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.
         * 
         * @return builder
         * 
         */
        public Builder serviceRole(String serviceRole) {
            return serviceRole(Output.of(serviceRole));
        }

        /**
         * @param source Configuration block. Detailed below.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder source(@Nullable Output source) {
            $.source = source;
            return this;
        }

        /**
         * @param source Configuration block. Detailed below.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder source(ProjectSourceArgs source) {
            return source(Output.of(source));
        }

        /**
         * @param sourceVersion Version of the build input to be built for this project. If not specified, the latest version is used.
         * 
         * @return builder
         * 
         */
        public Builder sourceVersion(@Nullable Output sourceVersion) {
            $.sourceVersion = sourceVersion;
            return this;
        }

        /**
         * @param sourceVersion Version of the build input to be built for this project. If not specified, the latest version is used.
         * 
         * @return builder
         * 
         */
        public Builder sourceVersion(String sourceVersion) {
            return sourceVersion(Output.of(sourceVersion));
        }

        /**
         * @param tags Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(@Nullable Output> tagsAll) {
            $.tagsAll = tagsAll;
            return this;
        }

        /**
         * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(Map tagsAll) {
            return tagsAll(Output.of(tagsAll));
        }

        /**
         * @param vpcConfig Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder vpcConfig(@Nullable Output vpcConfig) {
            $.vpcConfig = vpcConfig;
            return this;
        }

        /**
         * @param vpcConfig Configuration block. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder vpcConfig(ProjectVpcConfigArgs vpcConfig) {
            return vpcConfig(Output.of(vpcConfig));
        }

        public ProjectState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy