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

com.pulumi.spotinst.gke.ElastigroupArgs Maven / Gradle / Ivy

The 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.spotinst.gke;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.spotinst.gke.inputs.ElastigroupBackendServiceArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupDiskArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupGpuArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupInstanceTypesCustomArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupIntegrationDockerSwarmArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupIntegrationGkeArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupLabelArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupMetadataArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupNetworkInterfaceArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupRevertToPreemptibleArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupScalingDownPolicyArgs;
import com.pulumi.spotinst.gke.inputs.ElastigroupScalingUpPolicyArgs;
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 ElastigroupArgs extends com.pulumi.resources.ResourceArgs {

    public static final ElastigroupArgs Empty = new ElastigroupArgs();

    @Import(name="backendServices")
    private @Nullable Output> backendServices;

    public Optional>> backendServices() {
        return Optional.ofNullable(this.backendServices);
    }

    /**
     * @deprecated
     * Please define cluster_id under integration_gke
     * 
     */
    @Deprecated /* Please define cluster_id under integration_gke */
    @Import(name="clusterId")
    private @Nullable Output clusterId;

    /**
     * @deprecated
     * Please define cluster_id under integration_gke
     * 
     */
    @Deprecated /* Please define cluster_id under integration_gke */
    public Optional> clusterId() {
        return Optional.ofNullable(this.clusterId);
    }

    @Import(name="clusterZoneName", required=true)
    private Output clusterZoneName;

    public Output clusterZoneName() {
        return this.clusterZoneName;
    }

    @Import(name="desiredCapacity", required=true)
    private Output desiredCapacity;

    public Output desiredCapacity() {
        return this.desiredCapacity;
    }

    @Import(name="disks")
    private @Nullable Output> disks;

    public Optional>> disks() {
        return Optional.ofNullable(this.disks);
    }

    @Import(name="drainingTimeout")
    private @Nullable Output drainingTimeout;

    public Optional> drainingTimeout() {
        return Optional.ofNullable(this.drainingTimeout);
    }

    @Import(name="fallbackToOndemand")
    private @Nullable Output fallbackToOndemand;

    public Optional> fallbackToOndemand() {
        return Optional.ofNullable(this.fallbackToOndemand);
    }

    @Import(name="gpu")
    private @Nullable Output> gpu;

    public Optional>> gpu() {
        return Optional.ofNullable(this.gpu);
    }

    @Import(name="instanceNamePrefix")
    private @Nullable Output instanceNamePrefix;

    public Optional> instanceNamePrefix() {
        return Optional.ofNullable(this.instanceNamePrefix);
    }

    @Import(name="instanceTypesCustoms")
    private @Nullable Output> instanceTypesCustoms;

    public Optional>> instanceTypesCustoms() {
        return Optional.ofNullable(this.instanceTypesCustoms);
    }

    @Import(name="instanceTypesOndemand")
    private @Nullable Output instanceTypesOndemand;

    public Optional> instanceTypesOndemand() {
        return Optional.ofNullable(this.instanceTypesOndemand);
    }

    @Import(name="instanceTypesPreemptibles")
    private @Nullable Output> instanceTypesPreemptibles;

    public Optional>> instanceTypesPreemptibles() {
        return Optional.ofNullable(this.instanceTypesPreemptibles);
    }

    @Import(name="integrationDockerSwarm")
    private @Nullable Output integrationDockerSwarm;

    public Optional> integrationDockerSwarm() {
        return Optional.ofNullable(this.integrationDockerSwarm);
    }

    @Import(name="integrationGke")
    private @Nullable Output integrationGke;

    public Optional> integrationGke() {
        return Optional.ofNullable(this.integrationGke);
    }

    @Import(name="ipForwarding")
    private @Nullable Output ipForwarding;

    public Optional> ipForwarding() {
        return Optional.ofNullable(this.ipForwarding);
    }

    @Import(name="labels")
    private @Nullable Output> labels;

    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

    @Import(name="maxSize")
    private @Nullable Output maxSize;

    public Optional> maxSize() {
        return Optional.ofNullable(this.maxSize);
    }

    @Import(name="metadatas")
    private @Nullable Output> metadatas;

    public Optional>> metadatas() {
        return Optional.ofNullable(this.metadatas);
    }

    @Import(name="minSize")
    private @Nullable Output minSize;

    public Optional> minSize() {
        return Optional.ofNullable(this.minSize);
    }

    @Import(name="name")
    private @Nullable Output name;

    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    @Import(name="networkInterfaces")
    private @Nullable Output> networkInterfaces;

    public Optional>> networkInterfaces() {
        return Optional.ofNullable(this.networkInterfaces);
    }

    @Import(name="nodeImage")
    private @Nullable Output nodeImage;

    public Optional> nodeImage() {
        return Optional.ofNullable(this.nodeImage);
    }

    @Import(name="ondemandCount")
    private @Nullable Output ondemandCount;

    public Optional> ondemandCount() {
        return Optional.ofNullable(this.ondemandCount);
    }

    @Import(name="optimizationWindows")
    private @Nullable Output> optimizationWindows;

    public Optional>> optimizationWindows() {
        return Optional.ofNullable(this.optimizationWindows);
    }

    @Import(name="preemptiblePercentage")
    private @Nullable Output preemptiblePercentage;

    public Optional> preemptiblePercentage() {
        return Optional.ofNullable(this.preemptiblePercentage);
    }

    @Import(name="provisioningModel")
    private @Nullable Output provisioningModel;

    public Optional> provisioningModel() {
        return Optional.ofNullable(this.provisioningModel);
    }

    @Import(name="revertToPreemptibles")
    private @Nullable Output> revertToPreemptibles;

    public Optional>> revertToPreemptibles() {
        return Optional.ofNullable(this.revertToPreemptibles);
    }

    @Import(name="scalingDownPolicies")
    private @Nullable Output> scalingDownPolicies;

    public Optional>> scalingDownPolicies() {
        return Optional.ofNullable(this.scalingDownPolicies);
    }

    @Import(name="scalingUpPolicies")
    private @Nullable Output> scalingUpPolicies;

    public Optional>> scalingUpPolicies() {
        return Optional.ofNullable(this.scalingUpPolicies);
    }

    @Import(name="serviceAccount")
    private @Nullable Output serviceAccount;

    public Optional> serviceAccount() {
        return Optional.ofNullable(this.serviceAccount);
    }

    @Import(name="shutdownScript")
    private @Nullable Output shutdownScript;

    public Optional> shutdownScript() {
        return Optional.ofNullable(this.shutdownScript);
    }

    @Import(name="startupScript")
    private @Nullable Output startupScript;

    public Optional> startupScript() {
        return Optional.ofNullable(this.startupScript);
    }

    @Import(name="tags")
    private @Nullable Output> tags;

    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private ElastigroupArgs() {}

    private ElastigroupArgs(ElastigroupArgs $) {
        this.backendServices = $.backendServices;
        this.clusterId = $.clusterId;
        this.clusterZoneName = $.clusterZoneName;
        this.desiredCapacity = $.desiredCapacity;
        this.disks = $.disks;
        this.drainingTimeout = $.drainingTimeout;
        this.fallbackToOndemand = $.fallbackToOndemand;
        this.gpu = $.gpu;
        this.instanceNamePrefix = $.instanceNamePrefix;
        this.instanceTypesCustoms = $.instanceTypesCustoms;
        this.instanceTypesOndemand = $.instanceTypesOndemand;
        this.instanceTypesPreemptibles = $.instanceTypesPreemptibles;
        this.integrationDockerSwarm = $.integrationDockerSwarm;
        this.integrationGke = $.integrationGke;
        this.ipForwarding = $.ipForwarding;
        this.labels = $.labels;
        this.maxSize = $.maxSize;
        this.metadatas = $.metadatas;
        this.minSize = $.minSize;
        this.name = $.name;
        this.networkInterfaces = $.networkInterfaces;
        this.nodeImage = $.nodeImage;
        this.ondemandCount = $.ondemandCount;
        this.optimizationWindows = $.optimizationWindows;
        this.preemptiblePercentage = $.preemptiblePercentage;
        this.provisioningModel = $.provisioningModel;
        this.revertToPreemptibles = $.revertToPreemptibles;
        this.scalingDownPolicies = $.scalingDownPolicies;
        this.scalingUpPolicies = $.scalingUpPolicies;
        this.serviceAccount = $.serviceAccount;
        this.shutdownScript = $.shutdownScript;
        this.startupScript = $.startupScript;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private ElastigroupArgs $;

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

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

        public Builder backendServices(@Nullable Output> backendServices) {
            $.backendServices = backendServices;
            return this;
        }

        public Builder backendServices(List backendServices) {
            return backendServices(Output.of(backendServices));
        }

        public Builder backendServices(ElastigroupBackendServiceArgs... backendServices) {
            return backendServices(List.of(backendServices));
        }

        /**
         * @return builder
         * 
         * @deprecated
         * Please define cluster_id under integration_gke
         * 
         */
        @Deprecated /* Please define cluster_id under integration_gke */
        public Builder clusterId(@Nullable Output clusterId) {
            $.clusterId = clusterId;
            return this;
        }

        /**
         * @return builder
         * 
         * @deprecated
         * Please define cluster_id under integration_gke
         * 
         */
        @Deprecated /* Please define cluster_id under integration_gke */
        public Builder clusterId(String clusterId) {
            return clusterId(Output.of(clusterId));
        }

        public Builder clusterZoneName(Output clusterZoneName) {
            $.clusterZoneName = clusterZoneName;
            return this;
        }

        public Builder clusterZoneName(String clusterZoneName) {
            return clusterZoneName(Output.of(clusterZoneName));
        }

        public Builder desiredCapacity(Output desiredCapacity) {
            $.desiredCapacity = desiredCapacity;
            return this;
        }

        public Builder desiredCapacity(Integer desiredCapacity) {
            return desiredCapacity(Output.of(desiredCapacity));
        }

        public Builder disks(@Nullable Output> disks) {
            $.disks = disks;
            return this;
        }

        public Builder disks(List disks) {
            return disks(Output.of(disks));
        }

        public Builder disks(ElastigroupDiskArgs... disks) {
            return disks(List.of(disks));
        }

        public Builder drainingTimeout(@Nullable Output drainingTimeout) {
            $.drainingTimeout = drainingTimeout;
            return this;
        }

        public Builder drainingTimeout(Integer drainingTimeout) {
            return drainingTimeout(Output.of(drainingTimeout));
        }

        public Builder fallbackToOndemand(@Nullable Output fallbackToOndemand) {
            $.fallbackToOndemand = fallbackToOndemand;
            return this;
        }

        public Builder fallbackToOndemand(Boolean fallbackToOndemand) {
            return fallbackToOndemand(Output.of(fallbackToOndemand));
        }

        public Builder gpu(@Nullable Output> gpu) {
            $.gpu = gpu;
            return this;
        }

        public Builder gpu(List gpu) {
            return gpu(Output.of(gpu));
        }

        public Builder gpu(ElastigroupGpuArgs... gpu) {
            return gpu(List.of(gpu));
        }

        public Builder instanceNamePrefix(@Nullable Output instanceNamePrefix) {
            $.instanceNamePrefix = instanceNamePrefix;
            return this;
        }

        public Builder instanceNamePrefix(String instanceNamePrefix) {
            return instanceNamePrefix(Output.of(instanceNamePrefix));
        }

        public Builder instanceTypesCustoms(@Nullable Output> instanceTypesCustoms) {
            $.instanceTypesCustoms = instanceTypesCustoms;
            return this;
        }

        public Builder instanceTypesCustoms(List instanceTypesCustoms) {
            return instanceTypesCustoms(Output.of(instanceTypesCustoms));
        }

        public Builder instanceTypesCustoms(ElastigroupInstanceTypesCustomArgs... instanceTypesCustoms) {
            return instanceTypesCustoms(List.of(instanceTypesCustoms));
        }

        public Builder instanceTypesOndemand(@Nullable Output instanceTypesOndemand) {
            $.instanceTypesOndemand = instanceTypesOndemand;
            return this;
        }

        public Builder instanceTypesOndemand(String instanceTypesOndemand) {
            return instanceTypesOndemand(Output.of(instanceTypesOndemand));
        }

        public Builder instanceTypesPreemptibles(@Nullable Output> instanceTypesPreemptibles) {
            $.instanceTypesPreemptibles = instanceTypesPreemptibles;
            return this;
        }

        public Builder instanceTypesPreemptibles(List instanceTypesPreemptibles) {
            return instanceTypesPreemptibles(Output.of(instanceTypesPreemptibles));
        }

        public Builder instanceTypesPreemptibles(String... instanceTypesPreemptibles) {
            return instanceTypesPreemptibles(List.of(instanceTypesPreemptibles));
        }

        public Builder integrationDockerSwarm(@Nullable Output integrationDockerSwarm) {
            $.integrationDockerSwarm = integrationDockerSwarm;
            return this;
        }

        public Builder integrationDockerSwarm(ElastigroupIntegrationDockerSwarmArgs integrationDockerSwarm) {
            return integrationDockerSwarm(Output.of(integrationDockerSwarm));
        }

        public Builder integrationGke(@Nullable Output integrationGke) {
            $.integrationGke = integrationGke;
            return this;
        }

        public Builder integrationGke(ElastigroupIntegrationGkeArgs integrationGke) {
            return integrationGke(Output.of(integrationGke));
        }

        public Builder ipForwarding(@Nullable Output ipForwarding) {
            $.ipForwarding = ipForwarding;
            return this;
        }

        public Builder ipForwarding(Boolean ipForwarding) {
            return ipForwarding(Output.of(ipForwarding));
        }

        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        public Builder labels(List labels) {
            return labels(Output.of(labels));
        }

        public Builder labels(ElastigroupLabelArgs... labels) {
            return labels(List.of(labels));
        }

        public Builder maxSize(@Nullable Output maxSize) {
            $.maxSize = maxSize;
            return this;
        }

        public Builder maxSize(Integer maxSize) {
            return maxSize(Output.of(maxSize));
        }

        public Builder metadatas(@Nullable Output> metadatas) {
            $.metadatas = metadatas;
            return this;
        }

        public Builder metadatas(List metadatas) {
            return metadatas(Output.of(metadatas));
        }

        public Builder metadatas(ElastigroupMetadataArgs... metadatas) {
            return metadatas(List.of(metadatas));
        }

        public Builder minSize(@Nullable Output minSize) {
            $.minSize = minSize;
            return this;
        }

        public Builder minSize(Integer minSize) {
            return minSize(Output.of(minSize));
        }

        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        public Builder name(String name) {
            return name(Output.of(name));
        }

        public Builder networkInterfaces(@Nullable Output> networkInterfaces) {
            $.networkInterfaces = networkInterfaces;
            return this;
        }

        public Builder networkInterfaces(List networkInterfaces) {
            return networkInterfaces(Output.of(networkInterfaces));
        }

        public Builder networkInterfaces(ElastigroupNetworkInterfaceArgs... networkInterfaces) {
            return networkInterfaces(List.of(networkInterfaces));
        }

        public Builder nodeImage(@Nullable Output nodeImage) {
            $.nodeImage = nodeImage;
            return this;
        }

        public Builder nodeImage(String nodeImage) {
            return nodeImage(Output.of(nodeImage));
        }

        public Builder ondemandCount(@Nullable Output ondemandCount) {
            $.ondemandCount = ondemandCount;
            return this;
        }

        public Builder ondemandCount(Integer ondemandCount) {
            return ondemandCount(Output.of(ondemandCount));
        }

        public Builder optimizationWindows(@Nullable Output> optimizationWindows) {
            $.optimizationWindows = optimizationWindows;
            return this;
        }

        public Builder optimizationWindows(List optimizationWindows) {
            return optimizationWindows(Output.of(optimizationWindows));
        }

        public Builder optimizationWindows(String... optimizationWindows) {
            return optimizationWindows(List.of(optimizationWindows));
        }

        public Builder preemptiblePercentage(@Nullable Output preemptiblePercentage) {
            $.preemptiblePercentage = preemptiblePercentage;
            return this;
        }

        public Builder preemptiblePercentage(Integer preemptiblePercentage) {
            return preemptiblePercentage(Output.of(preemptiblePercentage));
        }

        public Builder provisioningModel(@Nullable Output provisioningModel) {
            $.provisioningModel = provisioningModel;
            return this;
        }

        public Builder provisioningModel(String provisioningModel) {
            return provisioningModel(Output.of(provisioningModel));
        }

        public Builder revertToPreemptibles(@Nullable Output> revertToPreemptibles) {
            $.revertToPreemptibles = revertToPreemptibles;
            return this;
        }

        public Builder revertToPreemptibles(List revertToPreemptibles) {
            return revertToPreemptibles(Output.of(revertToPreemptibles));
        }

        public Builder revertToPreemptibles(ElastigroupRevertToPreemptibleArgs... revertToPreemptibles) {
            return revertToPreemptibles(List.of(revertToPreemptibles));
        }

        public Builder scalingDownPolicies(@Nullable Output> scalingDownPolicies) {
            $.scalingDownPolicies = scalingDownPolicies;
            return this;
        }

        public Builder scalingDownPolicies(List scalingDownPolicies) {
            return scalingDownPolicies(Output.of(scalingDownPolicies));
        }

        public Builder scalingDownPolicies(ElastigroupScalingDownPolicyArgs... scalingDownPolicies) {
            return scalingDownPolicies(List.of(scalingDownPolicies));
        }

        public Builder scalingUpPolicies(@Nullable Output> scalingUpPolicies) {
            $.scalingUpPolicies = scalingUpPolicies;
            return this;
        }

        public Builder scalingUpPolicies(List scalingUpPolicies) {
            return scalingUpPolicies(Output.of(scalingUpPolicies));
        }

        public Builder scalingUpPolicies(ElastigroupScalingUpPolicyArgs... scalingUpPolicies) {
            return scalingUpPolicies(List.of(scalingUpPolicies));
        }

        public Builder serviceAccount(@Nullable Output serviceAccount) {
            $.serviceAccount = serviceAccount;
            return this;
        }

        public Builder serviceAccount(String serviceAccount) {
            return serviceAccount(Output.of(serviceAccount));
        }

        public Builder shutdownScript(@Nullable Output shutdownScript) {
            $.shutdownScript = shutdownScript;
            return this;
        }

        public Builder shutdownScript(String shutdownScript) {
            return shutdownScript(Output.of(shutdownScript));
        }

        public Builder startupScript(@Nullable Output startupScript) {
            $.startupScript = startupScript;
            return this;
        }

        public Builder startupScript(String startupScript) {
            return startupScript(Output.of(startupScript));
        }

        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        public Builder tags(List tags) {
            return tags(Output.of(tags));
        }

        public Builder tags(String... tags) {
            return tags(List.of(tags));
        }

        public ElastigroupArgs build() {
            if ($.clusterZoneName == null) {
                throw new MissingRequiredPropertyException("ElastigroupArgs", "clusterZoneName");
            }
            if ($.desiredCapacity == null) {
                throw new MissingRequiredPropertyException("ElastigroupArgs", "desiredCapacity");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy