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

com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
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.alicloud.emrv2.inputs;

import com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupCostOptimizedConfigArgs;
import com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupDataDiskArgs;
import com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSpotBidPriceArgs;
import com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSubscriptionConfigArgs;
import com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSystemDiskArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ClusterNodeGroupArgs Empty = new ClusterNodeGroupArgs();

    /**
     * Additional security Group IDS for Cluster, you can also specify this key for each node group.
     * 
     */
    @Import(name="additionalSecurityGroupIds")
    private @Nullable Output> additionalSecurityGroupIds;

    /**
     * @return Additional security Group IDS for Cluster, you can also specify this key for each node group.
     * 
     */
    public Optional>> additionalSecurityGroupIds() {
        return Optional.ofNullable(this.additionalSecurityGroupIds);
    }

    /**
     * The detail cost optimized configuration of emr cluster. See `cost_optimized_config` below.
     * 
     */
    @Import(name="costOptimizedConfig")
    private @Nullable Output costOptimizedConfig;

    /**
     * @return The detail cost optimized configuration of emr cluster. See `cost_optimized_config` below.
     * 
     */
    public Optional> costOptimizedConfig() {
        return Optional.ofNullable(this.costOptimizedConfig);
    }

    /**
     * Host Ecs data disks information in this node group. See `data_disks` below.
     * 
     */
    @Import(name="dataDisks", required=true)
    private Output> dataDisks;

    /**
     * @return Host Ecs data disks information in this node group. See `data_disks` below.
     * 
     */
    public Output> dataDisks() {
        return this.dataDisks;
    }

    /**
     * Deployment set strategy for this cluster node group. Supported value: NONE, CLUSTER or NODE_GROUP.
     * 
     */
    @Import(name="deploymentSetStrategy")
    private @Nullable Output deploymentSetStrategy;

    /**
     * @return Deployment set strategy for this cluster node group. Supported value: NONE, CLUSTER or NODE_GROUP.
     * 
     */
    public Optional> deploymentSetStrategy() {
        return Optional.ofNullable(this.deploymentSetStrategy);
    }

    /**
     * Enable emr cluster of task node graceful decommission, ’true’ or ‘false’ .
     * 
     */
    @Import(name="gracefulShutdown")
    private @Nullable Output gracefulShutdown;

    /**
     * @return Enable emr cluster of task node graceful decommission, ’true’ or ‘false’ .
     * 
     */
    public Optional> gracefulShutdown() {
        return Optional.ofNullable(this.gracefulShutdown);
    }

    /**
     * Host Ecs instance types.
     * 
     */
    @Import(name="instanceTypes", required=true)
    private Output> instanceTypes;

    /**
     * @return Host Ecs instance types.
     * 
     */
    public Output> instanceTypes() {
        return this.instanceTypes;
    }

    /**
     * Host Ecs number in this node group.
     * 
     */
    @Import(name="nodeCount", required=true)
    private Output nodeCount;

    /**
     * @return Host Ecs number in this node group.
     * 
     */
    public Output nodeCount() {
        return this.nodeCount;
    }

    /**
     * The node group name of emr cluster.
     * 
     */
    @Import(name="nodeGroupName", required=true)
    private Output nodeGroupName;

    /**
     * @return The node group name of emr cluster.
     * 
     */
    public Output nodeGroupName() {
        return this.nodeGroupName;
    }

    /**
     * The node group type of emr cluster, supported value: MASTER, CORE or TASK. Node group type of GATEWAY is available since v1.219.0.
     * 
     */
    @Import(name="nodeGroupType", required=true)
    private Output nodeGroupType;

    /**
     * @return The node group type of emr cluster, supported value: MASTER, CORE or TASK. Node group type of GATEWAY is available since v1.219.0.
     * 
     */
    public Output nodeGroupType() {
        return this.nodeGroupType;
    }

    /**
     * Node resize strategy for this cluster node group. Supported value: PRIORITY, COST_OPTIMIZED.
     * 
     */
    @Import(name="nodeResizeStrategy")
    private @Nullable Output nodeResizeStrategy;

    /**
     * @return Node resize strategy for this cluster node group. Supported value: PRIORITY, COST_OPTIMIZED.
     * 
     */
    public Optional> nodeResizeStrategy() {
        return Optional.ofNullable(this.nodeResizeStrategy);
    }

    /**
     * Payment Type for this cluster. Supported value: PayAsYouGo or Subscription.
     * 
     */
    @Import(name="paymentType")
    private @Nullable Output paymentType;

    /**
     * @return Payment Type for this cluster. Supported value: PayAsYouGo or Subscription.
     * 
     */
    public Optional> paymentType() {
        return Optional.ofNullable(this.paymentType);
    }

    /**
     * The spot bid prices of a PayAsYouGo instance. See `spot_bid_prices` below.
     * 
     */
    @Import(name="spotBidPrices")
    private @Nullable Output> spotBidPrices;

    /**
     * @return The spot bid prices of a PayAsYouGo instance. See `spot_bid_prices` below.
     * 
     */
    public Optional>> spotBidPrices() {
        return Optional.ofNullable(this.spotBidPrices);
    }

    /**
     * Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.
     * 
     */
    @Import(name="spotInstanceRemedy")
    private @Nullable Output spotInstanceRemedy;

    /**
     * @return Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.
     * 
     */
    public Optional> spotInstanceRemedy() {
        return Optional.ofNullable(this.spotInstanceRemedy);
    }

    /**
     * The detail configuration of subscription payment type. See `subscription_config` below.
     * 
     */
    @Import(name="subscriptionConfig")
    private @Nullable Output subscriptionConfig;

    /**
     * @return The detail configuration of subscription payment type. See `subscription_config` below.
     * 
     */
    public Optional> subscriptionConfig() {
        return Optional.ofNullable(this.subscriptionConfig);
    }

    /**
     * Host Ecs system disk information in this node group. See `system_disk` below.
     * 
     */
    @Import(name="systemDisk", required=true)
    private Output systemDisk;

    /**
     * @return Host Ecs system disk information in this node group. See `system_disk` below.
     * 
     */
    public Output systemDisk() {
        return this.systemDisk;
    }

    /**
     * Global vSwitch ids, you can also specify it in node group.
     * 
     */
    @Import(name="vswitchIds")
    private @Nullable Output> vswitchIds;

    /**
     * @return Global vSwitch ids, you can also specify it in node group.
     * 
     */
    public Optional>> vswitchIds() {
        return Optional.ofNullable(this.vswitchIds);
    }

    /**
     * Whether the node has a public IP address enabled.
     * 
     */
    @Import(name="withPublicIp")
    private @Nullable Output withPublicIp;

    /**
     * @return Whether the node has a public IP address enabled.
     * 
     */
    public Optional> withPublicIp() {
        return Optional.ofNullable(this.withPublicIp);
    }

    private ClusterNodeGroupArgs() {}

    private ClusterNodeGroupArgs(ClusterNodeGroupArgs $) {
        this.additionalSecurityGroupIds = $.additionalSecurityGroupIds;
        this.costOptimizedConfig = $.costOptimizedConfig;
        this.dataDisks = $.dataDisks;
        this.deploymentSetStrategy = $.deploymentSetStrategy;
        this.gracefulShutdown = $.gracefulShutdown;
        this.instanceTypes = $.instanceTypes;
        this.nodeCount = $.nodeCount;
        this.nodeGroupName = $.nodeGroupName;
        this.nodeGroupType = $.nodeGroupType;
        this.nodeResizeStrategy = $.nodeResizeStrategy;
        this.paymentType = $.paymentType;
        this.spotBidPrices = $.spotBidPrices;
        this.spotInstanceRemedy = $.spotInstanceRemedy;
        this.subscriptionConfig = $.subscriptionConfig;
        this.systemDisk = $.systemDisk;
        this.vswitchIds = $.vswitchIds;
        this.withPublicIp = $.withPublicIp;
    }

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

    public static final class Builder {
        private ClusterNodeGroupArgs $;

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

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

        /**
         * @param additionalSecurityGroupIds Additional security Group IDS for Cluster, you can also specify this key for each node group.
         * 
         * @return builder
         * 
         */
        public Builder additionalSecurityGroupIds(@Nullable Output> additionalSecurityGroupIds) {
            $.additionalSecurityGroupIds = additionalSecurityGroupIds;
            return this;
        }

        /**
         * @param additionalSecurityGroupIds Additional security Group IDS for Cluster, you can also specify this key for each node group.
         * 
         * @return builder
         * 
         */
        public Builder additionalSecurityGroupIds(List additionalSecurityGroupIds) {
            return additionalSecurityGroupIds(Output.of(additionalSecurityGroupIds));
        }

        /**
         * @param additionalSecurityGroupIds Additional security Group IDS for Cluster, you can also specify this key for each node group.
         * 
         * @return builder
         * 
         */
        public Builder additionalSecurityGroupIds(String... additionalSecurityGroupIds) {
            return additionalSecurityGroupIds(List.of(additionalSecurityGroupIds));
        }

        /**
         * @param costOptimizedConfig The detail cost optimized configuration of emr cluster. See `cost_optimized_config` below.
         * 
         * @return builder
         * 
         */
        public Builder costOptimizedConfig(@Nullable Output costOptimizedConfig) {
            $.costOptimizedConfig = costOptimizedConfig;
            return this;
        }

        /**
         * @param costOptimizedConfig The detail cost optimized configuration of emr cluster. See `cost_optimized_config` below.
         * 
         * @return builder
         * 
         */
        public Builder costOptimizedConfig(ClusterNodeGroupCostOptimizedConfigArgs costOptimizedConfig) {
            return costOptimizedConfig(Output.of(costOptimizedConfig));
        }

        /**
         * @param dataDisks Host Ecs data disks information in this node group. See `data_disks` below.
         * 
         * @return builder
         * 
         */
        public Builder dataDisks(Output> dataDisks) {
            $.dataDisks = dataDisks;
            return this;
        }

        /**
         * @param dataDisks Host Ecs data disks information in this node group. See `data_disks` below.
         * 
         * @return builder
         * 
         */
        public Builder dataDisks(List dataDisks) {
            return dataDisks(Output.of(dataDisks));
        }

        /**
         * @param dataDisks Host Ecs data disks information in this node group. See `data_disks` below.
         * 
         * @return builder
         * 
         */
        public Builder dataDisks(ClusterNodeGroupDataDiskArgs... dataDisks) {
            return dataDisks(List.of(dataDisks));
        }

        /**
         * @param deploymentSetStrategy Deployment set strategy for this cluster node group. Supported value: NONE, CLUSTER or NODE_GROUP.
         * 
         * @return builder
         * 
         */
        public Builder deploymentSetStrategy(@Nullable Output deploymentSetStrategy) {
            $.deploymentSetStrategy = deploymentSetStrategy;
            return this;
        }

        /**
         * @param deploymentSetStrategy Deployment set strategy for this cluster node group. Supported value: NONE, CLUSTER or NODE_GROUP.
         * 
         * @return builder
         * 
         */
        public Builder deploymentSetStrategy(String deploymentSetStrategy) {
            return deploymentSetStrategy(Output.of(deploymentSetStrategy));
        }

        /**
         * @param gracefulShutdown Enable emr cluster of task node graceful decommission, ’true’ or ‘false’ .
         * 
         * @return builder
         * 
         */
        public Builder gracefulShutdown(@Nullable Output gracefulShutdown) {
            $.gracefulShutdown = gracefulShutdown;
            return this;
        }

        /**
         * @param gracefulShutdown Enable emr cluster of task node graceful decommission, ’true’ or ‘false’ .
         * 
         * @return builder
         * 
         */
        public Builder gracefulShutdown(Boolean gracefulShutdown) {
            return gracefulShutdown(Output.of(gracefulShutdown));
        }

        /**
         * @param instanceTypes Host Ecs instance types.
         * 
         * @return builder
         * 
         */
        public Builder instanceTypes(Output> instanceTypes) {
            $.instanceTypes = instanceTypes;
            return this;
        }

        /**
         * @param instanceTypes Host Ecs instance types.
         * 
         * @return builder
         * 
         */
        public Builder instanceTypes(List instanceTypes) {
            return instanceTypes(Output.of(instanceTypes));
        }

        /**
         * @param instanceTypes Host Ecs instance types.
         * 
         * @return builder
         * 
         */
        public Builder instanceTypes(String... instanceTypes) {
            return instanceTypes(List.of(instanceTypes));
        }

        /**
         * @param nodeCount Host Ecs number in this node group.
         * 
         * @return builder
         * 
         */
        public Builder nodeCount(Output nodeCount) {
            $.nodeCount = nodeCount;
            return this;
        }

        /**
         * @param nodeCount Host Ecs number in this node group.
         * 
         * @return builder
         * 
         */
        public Builder nodeCount(Integer nodeCount) {
            return nodeCount(Output.of(nodeCount));
        }

        /**
         * @param nodeGroupName The node group name of emr cluster.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupName(Output nodeGroupName) {
            $.nodeGroupName = nodeGroupName;
            return this;
        }

        /**
         * @param nodeGroupName The node group name of emr cluster.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupName(String nodeGroupName) {
            return nodeGroupName(Output.of(nodeGroupName));
        }

        /**
         * @param nodeGroupType The node group type of emr cluster, supported value: MASTER, CORE or TASK. Node group type of GATEWAY is available since v1.219.0.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupType(Output nodeGroupType) {
            $.nodeGroupType = nodeGroupType;
            return this;
        }

        /**
         * @param nodeGroupType The node group type of emr cluster, supported value: MASTER, CORE or TASK. Node group type of GATEWAY is available since v1.219.0.
         * 
         * @return builder
         * 
         */
        public Builder nodeGroupType(String nodeGroupType) {
            return nodeGroupType(Output.of(nodeGroupType));
        }

        /**
         * @param nodeResizeStrategy Node resize strategy for this cluster node group. Supported value: PRIORITY, COST_OPTIMIZED.
         * 
         * @return builder
         * 
         */
        public Builder nodeResizeStrategy(@Nullable Output nodeResizeStrategy) {
            $.nodeResizeStrategy = nodeResizeStrategy;
            return this;
        }

        /**
         * @param nodeResizeStrategy Node resize strategy for this cluster node group. Supported value: PRIORITY, COST_OPTIMIZED.
         * 
         * @return builder
         * 
         */
        public Builder nodeResizeStrategy(String nodeResizeStrategy) {
            return nodeResizeStrategy(Output.of(nodeResizeStrategy));
        }

        /**
         * @param paymentType Payment Type for this cluster. Supported value: PayAsYouGo or Subscription.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(@Nullable Output paymentType) {
            $.paymentType = paymentType;
            return this;
        }

        /**
         * @param paymentType Payment Type for this cluster. Supported value: PayAsYouGo or Subscription.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(String paymentType) {
            return paymentType(Output.of(paymentType));
        }

        /**
         * @param spotBidPrices The spot bid prices of a PayAsYouGo instance. See `spot_bid_prices` below.
         * 
         * @return builder
         * 
         */
        public Builder spotBidPrices(@Nullable Output> spotBidPrices) {
            $.spotBidPrices = spotBidPrices;
            return this;
        }

        /**
         * @param spotBidPrices The spot bid prices of a PayAsYouGo instance. See `spot_bid_prices` below.
         * 
         * @return builder
         * 
         */
        public Builder spotBidPrices(List spotBidPrices) {
            return spotBidPrices(Output.of(spotBidPrices));
        }

        /**
         * @param spotBidPrices The spot bid prices of a PayAsYouGo instance. See `spot_bid_prices` below.
         * 
         * @return builder
         * 
         */
        public Builder spotBidPrices(ClusterNodeGroupSpotBidPriceArgs... spotBidPrices) {
            return spotBidPrices(List.of(spotBidPrices));
        }

        /**
         * @param spotInstanceRemedy Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.
         * 
         * @return builder
         * 
         */
        public Builder spotInstanceRemedy(@Nullable Output spotInstanceRemedy) {
            $.spotInstanceRemedy = spotInstanceRemedy;
            return this;
        }

        /**
         * @param spotInstanceRemedy Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.
         * 
         * @return builder
         * 
         */
        public Builder spotInstanceRemedy(Boolean spotInstanceRemedy) {
            return spotInstanceRemedy(Output.of(spotInstanceRemedy));
        }

        /**
         * @param subscriptionConfig The detail configuration of subscription payment type. See `subscription_config` below.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionConfig(@Nullable Output subscriptionConfig) {
            $.subscriptionConfig = subscriptionConfig;
            return this;
        }

        /**
         * @param subscriptionConfig The detail configuration of subscription payment type. See `subscription_config` below.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionConfig(ClusterNodeGroupSubscriptionConfigArgs subscriptionConfig) {
            return subscriptionConfig(Output.of(subscriptionConfig));
        }

        /**
         * @param systemDisk Host Ecs system disk information in this node group. See `system_disk` below.
         * 
         * @return builder
         * 
         */
        public Builder systemDisk(Output systemDisk) {
            $.systemDisk = systemDisk;
            return this;
        }

        /**
         * @param systemDisk Host Ecs system disk information in this node group. See `system_disk` below.
         * 
         * @return builder
         * 
         */
        public Builder systemDisk(ClusterNodeGroupSystemDiskArgs systemDisk) {
            return systemDisk(Output.of(systemDisk));
        }

        /**
         * @param vswitchIds Global vSwitch ids, you can also specify it in node group.
         * 
         * @return builder
         * 
         */
        public Builder vswitchIds(@Nullable Output> vswitchIds) {
            $.vswitchIds = vswitchIds;
            return this;
        }

        /**
         * @param vswitchIds Global vSwitch ids, you can also specify it in node group.
         * 
         * @return builder
         * 
         */
        public Builder vswitchIds(List vswitchIds) {
            return vswitchIds(Output.of(vswitchIds));
        }

        /**
         * @param vswitchIds Global vSwitch ids, you can also specify it in node group.
         * 
         * @return builder
         * 
         */
        public Builder vswitchIds(String... vswitchIds) {
            return vswitchIds(List.of(vswitchIds));
        }

        /**
         * @param withPublicIp Whether the node has a public IP address enabled.
         * 
         * @return builder
         * 
         */
        public Builder withPublicIp(@Nullable Output withPublicIp) {
            $.withPublicIp = withPublicIp;
            return this;
        }

        /**
         * @param withPublicIp Whether the node has a public IP address enabled.
         * 
         * @return builder
         * 
         */
        public Builder withPublicIp(Boolean withPublicIp) {
            return withPublicIp(Output.of(withPublicIp));
        }

        public ClusterNodeGroupArgs build() {
            if ($.dataDisks == null) {
                throw new MissingRequiredPropertyException("ClusterNodeGroupArgs", "dataDisks");
            }
            if ($.instanceTypes == null) {
                throw new MissingRequiredPropertyException("ClusterNodeGroupArgs", "instanceTypes");
            }
            if ($.nodeCount == null) {
                throw new MissingRequiredPropertyException("ClusterNodeGroupArgs", "nodeCount");
            }
            if ($.nodeGroupName == null) {
                throw new MissingRequiredPropertyException("ClusterNodeGroupArgs", "nodeGroupName");
            }
            if ($.nodeGroupType == null) {
                throw new MissingRequiredPropertyException("ClusterNodeGroupArgs", "nodeGroupType");
            }
            if ($.systemDisk == null) {
                throw new MissingRequiredPropertyException("ClusterNodeGroupArgs", "systemDisk");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy