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

com.pulumi.aws.codedeploy.DeploymentGroupArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.72.0
Show newest version
// *** 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.codedeploy;

import com.pulumi.aws.codedeploy.inputs.DeploymentGroupAlarmConfigurationArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupAutoRollbackConfigurationArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupDeploymentStyleArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupEc2TagFilterArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupEc2TagSetArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupEcsServiceArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupOnPremisesInstanceTagFilterArgs;
import com.pulumi.aws.codedeploy.inputs.DeploymentGroupTriggerConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
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 DeploymentGroupArgs extends com.pulumi.resources.ResourceArgs {

    public static final DeploymentGroupArgs Empty = new DeploymentGroupArgs();

    /**
     * Configuration block of alarms associated with the deployment group (documented below).
     * 
     */
    @Import(name="alarmConfiguration")
    private @Nullable Output alarmConfiguration;

    /**
     * @return Configuration block of alarms associated with the deployment group (documented below).
     * 
     */
    public Optional> alarmConfiguration() {
        return Optional.ofNullable(this.alarmConfiguration);
    }

    /**
     * The name of the application.
     * 
     */
    @Import(name="appName", required=true)
    private Output appName;

    /**
     * @return The name of the application.
     * 
     */
    public Output appName() {
        return this.appName;
    }

    /**
     * Configuration block of the automatic rollback configuration associated with the deployment group (documented below).
     * 
     */
    @Import(name="autoRollbackConfiguration")
    private @Nullable Output autoRollbackConfiguration;

    /**
     * @return Configuration block of the automatic rollback configuration associated with the deployment group (documented below).
     * 
     */
    public Optional> autoRollbackConfiguration() {
        return Optional.ofNullable(this.autoRollbackConfiguration);
    }

    /**
     * Autoscaling groups associated with the deployment group.
     * 
     */
    @Import(name="autoscalingGroups")
    private @Nullable Output> autoscalingGroups;

    /**
     * @return Autoscaling groups associated with the deployment group.
     * 
     */
    public Optional>> autoscalingGroups() {
        return Optional.ofNullable(this.autoscalingGroups);
    }

    /**
     * Configuration block of the blue/green deployment options for a deployment group (documented below).
     * 
     */
    @Import(name="blueGreenDeploymentConfig")
    private @Nullable Output blueGreenDeploymentConfig;

    /**
     * @return Configuration block of the blue/green deployment options for a deployment group (documented below).
     * 
     */
    public Optional> blueGreenDeploymentConfig() {
        return Optional.ofNullable(this.blueGreenDeploymentConfig);
    }

    /**
     * The name of the group's deployment config. The default is "CodeDeployDefault.OneAtATime".
     * 
     */
    @Import(name="deploymentConfigName")
    private @Nullable Output deploymentConfigName;

    /**
     * @return The name of the group's deployment config. The default is "CodeDeployDefault.OneAtATime".
     * 
     */
    public Optional> deploymentConfigName() {
        return Optional.ofNullable(this.deploymentConfigName);
    }

    /**
     * The name of the deployment group.
     * 
     */
    @Import(name="deploymentGroupName", required=true)
    private Output deploymentGroupName;

    /**
     * @return The name of the deployment group.
     * 
     */
    public Output deploymentGroupName() {
        return this.deploymentGroupName;
    }

    /**
     * Configuration block of the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer (documented below).
     * 
     */
    @Import(name="deploymentStyle")
    private @Nullable Output deploymentStyle;

    /**
     * @return Configuration block of the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer (documented below).
     * 
     */
    public Optional> deploymentStyle() {
        return Optional.ofNullable(this.deploymentStyle);
    }

    /**
     * Tag filters associated with the deployment group. See the AWS docs for details.
     * 
     */
    @Import(name="ec2TagFilters")
    private @Nullable Output> ec2TagFilters;

    /**
     * @return Tag filters associated with the deployment group. See the AWS docs for details.
     * 
     */
    public Optional>> ec2TagFilters() {
        return Optional.ofNullable(this.ec2TagFilters);
    }

    /**
     * Configuration block(s) of Tag filters associated with the deployment group, which are also referred to as tag groups (documented below). See the AWS docs for details.
     * 
     */
    @Import(name="ec2TagSets")
    private @Nullable Output> ec2TagSets;

    /**
     * @return Configuration block(s) of Tag filters associated with the deployment group, which are also referred to as tag groups (documented below). See the AWS docs for details.
     * 
     */
    public Optional>> ec2TagSets() {
        return Optional.ofNullable(this.ec2TagSets);
    }

    /**
     * Configuration block(s) of the ECS services for a deployment group (documented below).
     * 
     */
    @Import(name="ecsService")
    private @Nullable Output ecsService;

    /**
     * @return Configuration block(s) of the ECS services for a deployment group (documented below).
     * 
     */
    public Optional> ecsService() {
        return Optional.ofNullable(this.ecsService);
    }

    /**
     * Single configuration block of the load balancer to use in a blue/green deployment (documented below).
     * 
     */
    @Import(name="loadBalancerInfo")
    private @Nullable Output loadBalancerInfo;

    /**
     * @return Single configuration block of the load balancer to use in a blue/green deployment (documented below).
     * 
     */
    public Optional> loadBalancerInfo() {
        return Optional.ofNullable(this.loadBalancerInfo);
    }

    /**
     * On premise tag filters associated with the group. See the AWS docs for details.
     * 
     */
    @Import(name="onPremisesInstanceTagFilters")
    private @Nullable Output> onPremisesInstanceTagFilters;

    /**
     * @return On premise tag filters associated with the group. See the AWS docs for details.
     * 
     */
    public Optional>> onPremisesInstanceTagFilters() {
        return Optional.ofNullable(this.onPremisesInstanceTagFilters);
    }

    /**
     * Configuration block of Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. Valid values are `UPDATE` and `IGNORE`. Defaults to `UPDATE`.
     * 
     */
    @Import(name="outdatedInstancesStrategy")
    private @Nullable Output outdatedInstancesStrategy;

    /**
     * @return Configuration block of Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. Valid values are `UPDATE` and `IGNORE`. Defaults to `UPDATE`.
     * 
     */
    public Optional> outdatedInstancesStrategy() {
        return Optional.ofNullable(this.outdatedInstancesStrategy);
    }

    /**
     * The service role ARN that allows deployments.
     * 
     */
    @Import(name="serviceRoleArn", required=true)
    private Output serviceRoleArn;

    /**
     * @return The service role ARN that allows deployments.
     * 
     */
    public Output serviceRoleArn() {
        return this.serviceRoleArn;
    }

    /**
     * Key-value map of resource tags. .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 Key-value map of resource tags. .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);
    }

    /**
     * Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
     * 
     */
    @Import(name="terminationHookEnabled")
    private @Nullable Output terminationHookEnabled;

    /**
     * @return Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
     * 
     */
    public Optional> terminationHookEnabled() {
        return Optional.ofNullable(this.terminationHookEnabled);
    }

    /**
     * Configuration block(s) of the triggers for the deployment group (documented below).
     * 
     */
    @Import(name="triggerConfigurations")
    private @Nullable Output> triggerConfigurations;

    /**
     * @return Configuration block(s) of the triggers for the deployment group (documented below).
     * 
     */
    public Optional>> triggerConfigurations() {
        return Optional.ofNullable(this.triggerConfigurations);
    }

    private DeploymentGroupArgs() {}

    private DeploymentGroupArgs(DeploymentGroupArgs $) {
        this.alarmConfiguration = $.alarmConfiguration;
        this.appName = $.appName;
        this.autoRollbackConfiguration = $.autoRollbackConfiguration;
        this.autoscalingGroups = $.autoscalingGroups;
        this.blueGreenDeploymentConfig = $.blueGreenDeploymentConfig;
        this.deploymentConfigName = $.deploymentConfigName;
        this.deploymentGroupName = $.deploymentGroupName;
        this.deploymentStyle = $.deploymentStyle;
        this.ec2TagFilters = $.ec2TagFilters;
        this.ec2TagSets = $.ec2TagSets;
        this.ecsService = $.ecsService;
        this.loadBalancerInfo = $.loadBalancerInfo;
        this.onPremisesInstanceTagFilters = $.onPremisesInstanceTagFilters;
        this.outdatedInstancesStrategy = $.outdatedInstancesStrategy;
        this.serviceRoleArn = $.serviceRoleArn;
        this.tags = $.tags;
        this.terminationHookEnabled = $.terminationHookEnabled;
        this.triggerConfigurations = $.triggerConfigurations;
    }

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

    public static final class Builder {
        private DeploymentGroupArgs $;

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

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

        /**
         * @param alarmConfiguration Configuration block of alarms associated with the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder alarmConfiguration(@Nullable Output alarmConfiguration) {
            $.alarmConfiguration = alarmConfiguration;
            return this;
        }

        /**
         * @param alarmConfiguration Configuration block of alarms associated with the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder alarmConfiguration(DeploymentGroupAlarmConfigurationArgs alarmConfiguration) {
            return alarmConfiguration(Output.of(alarmConfiguration));
        }

        /**
         * @param appName The name of the application.
         * 
         * @return builder
         * 
         */
        public Builder appName(Output appName) {
            $.appName = appName;
            return this;
        }

        /**
         * @param appName The name of the application.
         * 
         * @return builder
         * 
         */
        public Builder appName(String appName) {
            return appName(Output.of(appName));
        }

        /**
         * @param autoRollbackConfiguration Configuration block of the automatic rollback configuration associated with the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder autoRollbackConfiguration(@Nullable Output autoRollbackConfiguration) {
            $.autoRollbackConfiguration = autoRollbackConfiguration;
            return this;
        }

        /**
         * @param autoRollbackConfiguration Configuration block of the automatic rollback configuration associated with the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder autoRollbackConfiguration(DeploymentGroupAutoRollbackConfigurationArgs autoRollbackConfiguration) {
            return autoRollbackConfiguration(Output.of(autoRollbackConfiguration));
        }

        /**
         * @param autoscalingGroups Autoscaling groups associated with the deployment group.
         * 
         * @return builder
         * 
         */
        public Builder autoscalingGroups(@Nullable Output> autoscalingGroups) {
            $.autoscalingGroups = autoscalingGroups;
            return this;
        }

        /**
         * @param autoscalingGroups Autoscaling groups associated with the deployment group.
         * 
         * @return builder
         * 
         */
        public Builder autoscalingGroups(List autoscalingGroups) {
            return autoscalingGroups(Output.of(autoscalingGroups));
        }

        /**
         * @param autoscalingGroups Autoscaling groups associated with the deployment group.
         * 
         * @return builder
         * 
         */
        public Builder autoscalingGroups(String... autoscalingGroups) {
            return autoscalingGroups(List.of(autoscalingGroups));
        }

        /**
         * @param blueGreenDeploymentConfig Configuration block of the blue/green deployment options for a deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder blueGreenDeploymentConfig(@Nullable Output blueGreenDeploymentConfig) {
            $.blueGreenDeploymentConfig = blueGreenDeploymentConfig;
            return this;
        }

        /**
         * @param blueGreenDeploymentConfig Configuration block of the blue/green deployment options for a deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder blueGreenDeploymentConfig(DeploymentGroupBlueGreenDeploymentConfigArgs blueGreenDeploymentConfig) {
            return blueGreenDeploymentConfig(Output.of(blueGreenDeploymentConfig));
        }

        /**
         * @param deploymentConfigName The name of the group's deployment config. The default is "CodeDeployDefault.OneAtATime".
         * 
         * @return builder
         * 
         */
        public Builder deploymentConfigName(@Nullable Output deploymentConfigName) {
            $.deploymentConfigName = deploymentConfigName;
            return this;
        }

        /**
         * @param deploymentConfigName The name of the group's deployment config. The default is "CodeDeployDefault.OneAtATime".
         * 
         * @return builder
         * 
         */
        public Builder deploymentConfigName(String deploymentConfigName) {
            return deploymentConfigName(Output.of(deploymentConfigName));
        }

        /**
         * @param deploymentGroupName The name of the deployment group.
         * 
         * @return builder
         * 
         */
        public Builder deploymentGroupName(Output deploymentGroupName) {
            $.deploymentGroupName = deploymentGroupName;
            return this;
        }

        /**
         * @param deploymentGroupName The name of the deployment group.
         * 
         * @return builder
         * 
         */
        public Builder deploymentGroupName(String deploymentGroupName) {
            return deploymentGroupName(Output.of(deploymentGroupName));
        }

        /**
         * @param deploymentStyle Configuration block of the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer (documented below).
         * 
         * @return builder
         * 
         */
        public Builder deploymentStyle(@Nullable Output deploymentStyle) {
            $.deploymentStyle = deploymentStyle;
            return this;
        }

        /**
         * @param deploymentStyle Configuration block of the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer (documented below).
         * 
         * @return builder
         * 
         */
        public Builder deploymentStyle(DeploymentGroupDeploymentStyleArgs deploymentStyle) {
            return deploymentStyle(Output.of(deploymentStyle));
        }

        /**
         * @param ec2TagFilters Tag filters associated with the deployment group. See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder ec2TagFilters(@Nullable Output> ec2TagFilters) {
            $.ec2TagFilters = ec2TagFilters;
            return this;
        }

        /**
         * @param ec2TagFilters Tag filters associated with the deployment group. See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder ec2TagFilters(List ec2TagFilters) {
            return ec2TagFilters(Output.of(ec2TagFilters));
        }

        /**
         * @param ec2TagFilters Tag filters associated with the deployment group. See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder ec2TagFilters(DeploymentGroupEc2TagFilterArgs... ec2TagFilters) {
            return ec2TagFilters(List.of(ec2TagFilters));
        }

        /**
         * @param ec2TagSets Configuration block(s) of Tag filters associated with the deployment group, which are also referred to as tag groups (documented below). See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder ec2TagSets(@Nullable Output> ec2TagSets) {
            $.ec2TagSets = ec2TagSets;
            return this;
        }

        /**
         * @param ec2TagSets Configuration block(s) of Tag filters associated with the deployment group, which are also referred to as tag groups (documented below). See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder ec2TagSets(List ec2TagSets) {
            return ec2TagSets(Output.of(ec2TagSets));
        }

        /**
         * @param ec2TagSets Configuration block(s) of Tag filters associated with the deployment group, which are also referred to as tag groups (documented below). See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder ec2TagSets(DeploymentGroupEc2TagSetArgs... ec2TagSets) {
            return ec2TagSets(List.of(ec2TagSets));
        }

        /**
         * @param ecsService Configuration block(s) of the ECS services for a deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder ecsService(@Nullable Output ecsService) {
            $.ecsService = ecsService;
            return this;
        }

        /**
         * @param ecsService Configuration block(s) of the ECS services for a deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder ecsService(DeploymentGroupEcsServiceArgs ecsService) {
            return ecsService(Output.of(ecsService));
        }

        /**
         * @param loadBalancerInfo Single configuration block of the load balancer to use in a blue/green deployment (documented below).
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerInfo(@Nullable Output loadBalancerInfo) {
            $.loadBalancerInfo = loadBalancerInfo;
            return this;
        }

        /**
         * @param loadBalancerInfo Single configuration block of the load balancer to use in a blue/green deployment (documented below).
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerInfo(DeploymentGroupLoadBalancerInfoArgs loadBalancerInfo) {
            return loadBalancerInfo(Output.of(loadBalancerInfo));
        }

        /**
         * @param onPremisesInstanceTagFilters On premise tag filters associated with the group. See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder onPremisesInstanceTagFilters(@Nullable Output> onPremisesInstanceTagFilters) {
            $.onPremisesInstanceTagFilters = onPremisesInstanceTagFilters;
            return this;
        }

        /**
         * @param onPremisesInstanceTagFilters On premise tag filters associated with the group. See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder onPremisesInstanceTagFilters(List onPremisesInstanceTagFilters) {
            return onPremisesInstanceTagFilters(Output.of(onPremisesInstanceTagFilters));
        }

        /**
         * @param onPremisesInstanceTagFilters On premise tag filters associated with the group. See the AWS docs for details.
         * 
         * @return builder
         * 
         */
        public Builder onPremisesInstanceTagFilters(DeploymentGroupOnPremisesInstanceTagFilterArgs... onPremisesInstanceTagFilters) {
            return onPremisesInstanceTagFilters(List.of(onPremisesInstanceTagFilters));
        }

        /**
         * @param outdatedInstancesStrategy Configuration block of Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. Valid values are `UPDATE` and `IGNORE`. Defaults to `UPDATE`.
         * 
         * @return builder
         * 
         */
        public Builder outdatedInstancesStrategy(@Nullable Output outdatedInstancesStrategy) {
            $.outdatedInstancesStrategy = outdatedInstancesStrategy;
            return this;
        }

        /**
         * @param outdatedInstancesStrategy Configuration block of Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. Valid values are `UPDATE` and `IGNORE`. Defaults to `UPDATE`.
         * 
         * @return builder
         * 
         */
        public Builder outdatedInstancesStrategy(String outdatedInstancesStrategy) {
            return outdatedInstancesStrategy(Output.of(outdatedInstancesStrategy));
        }

        /**
         * @param serviceRoleArn The service role ARN that allows deployments.
         * 
         * @return builder
         * 
         */
        public Builder serviceRoleArn(Output serviceRoleArn) {
            $.serviceRoleArn = serviceRoleArn;
            return this;
        }

        /**
         * @param serviceRoleArn The service role ARN that allows deployments.
         * 
         * @return builder
         * 
         */
        public Builder serviceRoleArn(String serviceRoleArn) {
            return serviceRoleArn(Output.of(serviceRoleArn));
        }

        /**
         * @param tags Key-value map of resource tags. .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 Key-value map of resource tags. .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 terminationHookEnabled Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
         * 
         * @return builder
         * 
         */
        public Builder terminationHookEnabled(@Nullable Output terminationHookEnabled) {
            $.terminationHookEnabled = terminationHookEnabled;
            return this;
        }

        /**
         * @param terminationHookEnabled Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
         * 
         * @return builder
         * 
         */
        public Builder terminationHookEnabled(Boolean terminationHookEnabled) {
            return terminationHookEnabled(Output.of(terminationHookEnabled));
        }

        /**
         * @param triggerConfigurations Configuration block(s) of the triggers for the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder triggerConfigurations(@Nullable Output> triggerConfigurations) {
            $.triggerConfigurations = triggerConfigurations;
            return this;
        }

        /**
         * @param triggerConfigurations Configuration block(s) of the triggers for the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder triggerConfigurations(List triggerConfigurations) {
            return triggerConfigurations(Output.of(triggerConfigurations));
        }

        /**
         * @param triggerConfigurations Configuration block(s) of the triggers for the deployment group (documented below).
         * 
         * @return builder
         * 
         */
        public Builder triggerConfigurations(DeploymentGroupTriggerConfigurationArgs... triggerConfigurations) {
            return triggerConfigurations(List.of(triggerConfigurations));
        }

        public DeploymentGroupArgs build() {
            if ($.appName == null) {
                throw new MissingRequiredPropertyException("DeploymentGroupArgs", "appName");
            }
            if ($.deploymentGroupName == null) {
                throw new MissingRequiredPropertyException("DeploymentGroupArgs", "deploymentGroupName");
            }
            if ($.serviceRoleArn == null) {
                throw new MissingRequiredPropertyException("DeploymentGroupArgs", "serviceRoleArn");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy