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

com.pulumi.spotinst.gke.OceanImportArgs 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.OceanImportAutoscalerArgs;
import com.pulumi.spotinst.gke.inputs.OceanImportBackendServiceArgs;
import com.pulumi.spotinst.gke.inputs.OceanImportScheduledTaskArgs;
import com.pulumi.spotinst.gke.inputs.OceanImportShieldedInstanceConfigArgs;
import com.pulumi.spotinst.gke.inputs.OceanImportStrategyArgs;
import com.pulumi.spotinst.gke.inputs.OceanImportUpdatePolicyArgs;
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 OceanImportArgs extends com.pulumi.resources.ResourceArgs {

    public static final OceanImportArgs Empty = new OceanImportArgs();

    /**
     * The Ocean Kubernetes Autoscaler object.
     * 
     */
    @Import(name="autoscaler")
    private @Nullable Output autoscaler;

    /**
     * @return The Ocean Kubernetes Autoscaler object.
     * 
     */
    public Optional> autoscaler() {
        return Optional.ofNullable(this.autoscaler);
    }

    /**
     * Describes the backend service configurations.
     * 
     */
    @Import(name="backendServices")
    private @Nullable Output> backendServices;

    /**
     * @return Describes the backend service configurations.
     * 
     */
    public Optional>> backendServices() {
        return Optional.ofNullable(this.backendServices);
    }

    /**
     * Instance types to avoid launching in the Ocean cluster. Cannot be configured if whitelist list is configured.
     * 
     */
    @Import(name="blacklists")
    private @Nullable Output> blacklists;

    /**
     * @return Instance types to avoid launching in the Ocean cluster. Cannot be configured if whitelist list is configured.
     * 
     */
    public Optional>> blacklists() {
        return Optional.ofNullable(this.blacklists);
    }

    /**
     * The GKE cluster name.
     * 
     */
    @Import(name="clusterName", required=true)
    private Output clusterName;

    /**
     * @return The GKE cluster name.
     * 
     */
    public Output clusterName() {
        return this.clusterName;
    }

    /**
     * A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.
     * 
     */
    @Import(name="controllerClusterId")
    private @Nullable Output controllerClusterId;

    /**
     * @return A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.
     * 
     */
    public Optional> controllerClusterId() {
        return Optional.ofNullable(this.controllerClusterId);
    }

    /**
     * The number of instances to launch and maintain in the cluster.
     * 
     */
    @Import(name="desiredCapacity")
    private @Nullable Output desiredCapacity;

    /**
     * @return The number of instances to launch and maintain in the cluster.
     * 
     */
    public Optional> desiredCapacity() {
        return Optional.ofNullable(this.desiredCapacity);
    }

    /**
     * The zone the master cluster is located in.
     * 
     */
    @Import(name="location", required=true)
    private Output location;

    /**
     * @return The zone the master cluster is located in.
     * 
     */
    public Output location() {
        return this.location;
    }

    /**
     * The upper limit of instances the cluster can scale up to.
     * 
     */
    @Import(name="maxSize")
    private @Nullable Output maxSize;

    /**
     * @return The upper limit of instances the cluster can scale up to.
     * 
     */
    public Optional> maxSize() {
        return Optional.ofNullable(this.maxSize);
    }

    /**
     * The lower limit of instances the cluster can scale down to.
     * 
     */
    @Import(name="minSize")
    private @Nullable Output minSize;

    /**
     * @return The lower limit of instances the cluster can scale down to.
     * 
     */
    public Optional> minSize() {
        return Optional.ofNullable(this.minSize);
    }

    /**
     * The root volume disk type.
     * 
     */
    @Import(name="rootVolumeType")
    private @Nullable Output rootVolumeType;

    /**
     * @return The root volume disk type.
     * 
     */
    public Optional> rootVolumeType() {
        return Optional.ofNullable(this.rootVolumeType);
    }

    /**
     * Set scheduling object.
     * 
     */
    @Import(name="scheduledTasks")
    private @Nullable Output> scheduledTasks;

    /**
     * @return Set scheduling object.
     * 
     */
    public Optional>> scheduledTasks() {
        return Optional.ofNullable(this.scheduledTasks);
    }

    /**
     * The Ocean shielded instance configuration object.
     * 
     */
    @Import(name="shieldedInstanceConfig")
    private @Nullable Output shieldedInstanceConfig;

    /**
     * @return The Ocean shielded instance configuration object.
     * 
     */
    public Optional> shieldedInstanceConfig() {
        return Optional.ofNullable(this.shieldedInstanceConfig);
    }

    /**
     * Strategy object.
     * 
     */
    @Import(name="strategies")
    private @Nullable Output> strategies;

    /**
     * @return Strategy object.
     * 
     */
    public Optional>> strategies() {
        return Optional.ofNullable(this.strategies);
    }

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

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

    /**
     * launch specification defined on the Ocean object will function only as a template for virtual node groups.
     * 
     */
    @Import(name="useAsTemplateOnly")
    private @Nullable Output useAsTemplateOnly;

    /**
     * @return launch specification defined on the Ocean object will function only as a template for virtual node groups.
     * 
     */
    public Optional> useAsTemplateOnly() {
        return Optional.ofNullable(this.useAsTemplateOnly);
    }

    /**
     * Instance types allowed in the Ocean cluster. Cannot be configured if blacklist list is configured.
     * 
     */
    @Import(name="whitelists")
    private @Nullable Output> whitelists;

    /**
     * @return Instance types allowed in the Ocean cluster. Cannot be configured if blacklist list is configured.
     * 
     */
    public Optional>> whitelists() {
        return Optional.ofNullable(this.whitelists);
    }

    private OceanImportArgs() {}

    private OceanImportArgs(OceanImportArgs $) {
        this.autoscaler = $.autoscaler;
        this.backendServices = $.backendServices;
        this.blacklists = $.blacklists;
        this.clusterName = $.clusterName;
        this.controllerClusterId = $.controllerClusterId;
        this.desiredCapacity = $.desiredCapacity;
        this.location = $.location;
        this.maxSize = $.maxSize;
        this.minSize = $.minSize;
        this.rootVolumeType = $.rootVolumeType;
        this.scheduledTasks = $.scheduledTasks;
        this.shieldedInstanceConfig = $.shieldedInstanceConfig;
        this.strategies = $.strategies;
        this.updatePolicy = $.updatePolicy;
        this.useAsTemplateOnly = $.useAsTemplateOnly;
        this.whitelists = $.whitelists;
    }

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

    public static final class Builder {
        private OceanImportArgs $;

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

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

        /**
         * @param autoscaler The Ocean Kubernetes Autoscaler object.
         * 
         * @return builder
         * 
         */
        public Builder autoscaler(@Nullable Output autoscaler) {
            $.autoscaler = autoscaler;
            return this;
        }

        /**
         * @param autoscaler The Ocean Kubernetes Autoscaler object.
         * 
         * @return builder
         * 
         */
        public Builder autoscaler(OceanImportAutoscalerArgs autoscaler) {
            return autoscaler(Output.of(autoscaler));
        }

        /**
         * @param backendServices Describes the backend service configurations.
         * 
         * @return builder
         * 
         */
        public Builder backendServices(@Nullable Output> backendServices) {
            $.backendServices = backendServices;
            return this;
        }

        /**
         * @param backendServices Describes the backend service configurations.
         * 
         * @return builder
         * 
         */
        public Builder backendServices(List backendServices) {
            return backendServices(Output.of(backendServices));
        }

        /**
         * @param backendServices Describes the backend service configurations.
         * 
         * @return builder
         * 
         */
        public Builder backendServices(OceanImportBackendServiceArgs... backendServices) {
            return backendServices(List.of(backendServices));
        }

        /**
         * @param blacklists Instance types to avoid launching in the Ocean cluster. Cannot be configured if whitelist list is configured.
         * 
         * @return builder
         * 
         */
        public Builder blacklists(@Nullable Output> blacklists) {
            $.blacklists = blacklists;
            return this;
        }

        /**
         * @param blacklists Instance types to avoid launching in the Ocean cluster. Cannot be configured if whitelist list is configured.
         * 
         * @return builder
         * 
         */
        public Builder blacklists(List blacklists) {
            return blacklists(Output.of(blacklists));
        }

        /**
         * @param blacklists Instance types to avoid launching in the Ocean cluster. Cannot be configured if whitelist list is configured.
         * 
         * @return builder
         * 
         */
        public Builder blacklists(String... blacklists) {
            return blacklists(List.of(blacklists));
        }

        /**
         * @param clusterName The GKE cluster name.
         * 
         * @return builder
         * 
         */
        public Builder clusterName(Output clusterName) {
            $.clusterName = clusterName;
            return this;
        }

        /**
         * @param clusterName The GKE cluster name.
         * 
         * @return builder
         * 
         */
        public Builder clusterName(String clusterName) {
            return clusterName(Output.of(clusterName));
        }

        /**
         * @param controllerClusterId A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.
         * 
         * @return builder
         * 
         */
        public Builder controllerClusterId(@Nullable Output controllerClusterId) {
            $.controllerClusterId = controllerClusterId;
            return this;
        }

        /**
         * @param controllerClusterId A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.
         * 
         * @return builder
         * 
         */
        public Builder controllerClusterId(String controllerClusterId) {
            return controllerClusterId(Output.of(controllerClusterId));
        }

        /**
         * @param desiredCapacity The number of instances to launch and maintain in the cluster.
         * 
         * @return builder
         * 
         */
        public Builder desiredCapacity(@Nullable Output desiredCapacity) {
            $.desiredCapacity = desiredCapacity;
            return this;
        }

        /**
         * @param desiredCapacity The number of instances to launch and maintain in the cluster.
         * 
         * @return builder
         * 
         */
        public Builder desiredCapacity(Integer desiredCapacity) {
            return desiredCapacity(Output.of(desiredCapacity));
        }

        /**
         * @param location The zone the master cluster is located in.
         * 
         * @return builder
         * 
         */
        public Builder location(Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The zone the master cluster is located in.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param maxSize The upper limit of instances the cluster can scale up to.
         * 
         * @return builder
         * 
         */
        public Builder maxSize(@Nullable Output maxSize) {
            $.maxSize = maxSize;
            return this;
        }

        /**
         * @param maxSize The upper limit of instances the cluster can scale up to.
         * 
         * @return builder
         * 
         */
        public Builder maxSize(Integer maxSize) {
            return maxSize(Output.of(maxSize));
        }

        /**
         * @param minSize The lower limit of instances the cluster can scale down to.
         * 
         * @return builder
         * 
         */
        public Builder minSize(@Nullable Output minSize) {
            $.minSize = minSize;
            return this;
        }

        /**
         * @param minSize The lower limit of instances the cluster can scale down to.
         * 
         * @return builder
         * 
         */
        public Builder minSize(Integer minSize) {
            return minSize(Output.of(minSize));
        }

        /**
         * @param rootVolumeType The root volume disk type.
         * 
         * @return builder
         * 
         */
        public Builder rootVolumeType(@Nullable Output rootVolumeType) {
            $.rootVolumeType = rootVolumeType;
            return this;
        }

        /**
         * @param rootVolumeType The root volume disk type.
         * 
         * @return builder
         * 
         */
        public Builder rootVolumeType(String rootVolumeType) {
            return rootVolumeType(Output.of(rootVolumeType));
        }

        /**
         * @param scheduledTasks Set scheduling object.
         * 
         * @return builder
         * 
         */
        public Builder scheduledTasks(@Nullable Output> scheduledTasks) {
            $.scheduledTasks = scheduledTasks;
            return this;
        }

        /**
         * @param scheduledTasks Set scheduling object.
         * 
         * @return builder
         * 
         */
        public Builder scheduledTasks(List scheduledTasks) {
            return scheduledTasks(Output.of(scheduledTasks));
        }

        /**
         * @param scheduledTasks Set scheduling object.
         * 
         * @return builder
         * 
         */
        public Builder scheduledTasks(OceanImportScheduledTaskArgs... scheduledTasks) {
            return scheduledTasks(List.of(scheduledTasks));
        }

        /**
         * @param shieldedInstanceConfig The Ocean shielded instance configuration object.
         * 
         * @return builder
         * 
         */
        public Builder shieldedInstanceConfig(@Nullable Output shieldedInstanceConfig) {
            $.shieldedInstanceConfig = shieldedInstanceConfig;
            return this;
        }

        /**
         * @param shieldedInstanceConfig The Ocean shielded instance configuration object.
         * 
         * @return builder
         * 
         */
        public Builder shieldedInstanceConfig(OceanImportShieldedInstanceConfigArgs shieldedInstanceConfig) {
            return shieldedInstanceConfig(Output.of(shieldedInstanceConfig));
        }

        /**
         * @param strategies Strategy object.
         * 
         * @return builder
         * 
         */
        public Builder strategies(@Nullable Output> strategies) {
            $.strategies = strategies;
            return this;
        }

        /**
         * @param strategies Strategy object.
         * 
         * @return builder
         * 
         */
        public Builder strategies(List strategies) {
            return strategies(Output.of(strategies));
        }

        /**
         * @param strategies Strategy object.
         * 
         * @return builder
         * 
         */
        public Builder strategies(OceanImportStrategyArgs... strategies) {
            return strategies(List.of(strategies));
        }

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

        public Builder updatePolicy(OceanImportUpdatePolicyArgs updatePolicy) {
            return updatePolicy(Output.of(updatePolicy));
        }

        /**
         * @param useAsTemplateOnly launch specification defined on the Ocean object will function only as a template for virtual node groups.
         * 
         * @return builder
         * 
         */
        public Builder useAsTemplateOnly(@Nullable Output useAsTemplateOnly) {
            $.useAsTemplateOnly = useAsTemplateOnly;
            return this;
        }

        /**
         * @param useAsTemplateOnly launch specification defined on the Ocean object will function only as a template for virtual node groups.
         * 
         * @return builder
         * 
         */
        public Builder useAsTemplateOnly(Boolean useAsTemplateOnly) {
            return useAsTemplateOnly(Output.of(useAsTemplateOnly));
        }

        /**
         * @param whitelists Instance types allowed in the Ocean cluster. Cannot be configured if blacklist list is configured.
         * 
         * @return builder
         * 
         */
        public Builder whitelists(@Nullable Output> whitelists) {
            $.whitelists = whitelists;
            return this;
        }

        /**
         * @param whitelists Instance types allowed in the Ocean cluster. Cannot be configured if blacklist list is configured.
         * 
         * @return builder
         * 
         */
        public Builder whitelists(List whitelists) {
            return whitelists(Output.of(whitelists));
        }

        /**
         * @param whitelists Instance types allowed in the Ocean cluster. Cannot be configured if blacklist list is configured.
         * 
         * @return builder
         * 
         */
        public Builder whitelists(String... whitelists) {
            return whitelists(List.of(whitelists));
        }

        public OceanImportArgs build() {
            if ($.clusterName == null) {
                throw new MissingRequiredPropertyException("OceanImportArgs", "clusterName");
            }
            if ($.location == null) {
                throw new MissingRequiredPropertyException("OceanImportArgs", "location");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy