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

com.pulumi.ec.inputs.DeploymentElasticsearchArgs Maven / Gradle / Ivy

There is a newer version: 0.10.0-alpha.1726205748
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.ec.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.ec.inputs.DeploymentElasticsearchColdArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchConfigArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchCoordinatingArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchExtensionArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchFrozenArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchHotArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchKeystoreContentsArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchMasterArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchMlArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchRemoteClusterArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchSnapshotArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchSnapshotSourceArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchTrustAccountArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchTrustExternalArgs;
import com.pulumi.ec.inputs.DeploymentElasticsearchWarmArgs;
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 DeploymentElasticsearchArgs extends com.pulumi.resources.ResourceArgs {

    public static final DeploymentElasticsearchArgs Empty = new DeploymentElasticsearchArgs();

    /**
     * Enable or disable autoscaling. Defaults to the setting coming from the deployment template.
     * 
     */
    @Import(name="autoscale")
    private @Nullable Output autoscale;

    /**
     * @return Enable or disable autoscaling. Defaults to the setting coming from the deployment template.
     * 
     */
    public Optional> autoscale() {
        return Optional.ofNullable(this.autoscale);
    }

    /**
     * The encoded Elasticsearch credentials to use in Beats or Logstash
     * 
     */
    @Import(name="cloudId")
    private @Nullable Output cloudId;

    /**
     * @return The encoded Elasticsearch credentials to use in Beats or Logstash
     * 
     */
    public Optional> cloudId() {
        return Optional.ofNullable(this.cloudId);
    }

    /**
     * 'cold' topology element
     * 
     */
    @Import(name="cold")
    private @Nullable Output cold;

    /**
     * @return 'cold' topology element
     * 
     */
    public Optional> cold() {
        return Optional.ofNullable(this.cold);
    }

    /**
     * Elasticsearch settings which will be applied to all topologies
     * 
     */
    @Import(name="config")
    private @Nullable Output config;

    /**
     * @return Elasticsearch settings which will be applied to all topologies
     * 
     */
    public Optional> config() {
        return Optional.ofNullable(this.config);
    }

    /**
     * 'coordinating' topology element
     * 
     */
    @Import(name="coordinating")
    private @Nullable Output coordinating;

    /**
     * @return 'coordinating' topology element
     * 
     */
    public Optional> coordinating() {
        return Optional.ofNullable(this.coordinating);
    }

    /**
     * Optional Elasticsearch extensions such as custom bundles or plugins.
     * 
     */
    @Import(name="extensions")
    private @Nullable Output> extensions;

    /**
     * @return Optional Elasticsearch extensions such as custom bundles or plugins.
     * 
     */
    public Optional>> extensions() {
        return Optional.ofNullable(this.extensions);
    }

    /**
     * 'frozen' topology element
     * 
     */
    @Import(name="frozen")
    private @Nullable Output frozen;

    /**
     * @return 'frozen' topology element
     * 
     */
    public Optional> frozen() {
        return Optional.ofNullable(this.frozen);
    }

    /**
     * 'hot' topology element
     * 
     */
    @Import(name="hot", required=true)
    private Output hot;

    /**
     * @return 'hot' topology element
     * 
     */
    public Output hot() {
        return this.hot;
    }

    /**
     * The Elasticsearch resource HTTP endpoint
     * 
     */
    @Import(name="httpEndpoint")
    private @Nullable Output httpEndpoint;

    /**
     * @return The Elasticsearch resource HTTP endpoint
     * 
     */
    public Optional> httpEndpoint() {
        return Optional.ofNullable(this.httpEndpoint);
    }

    /**
     * The Elasticsearch resource HTTPs endpoint
     * 
     */
    @Import(name="httpsEndpoint")
    private @Nullable Output httpsEndpoint;

    /**
     * @return The Elasticsearch resource HTTPs endpoint
     * 
     */
    public Optional> httpsEndpoint() {
        return Optional.ofNullable(this.httpsEndpoint);
    }

    /**
     * Keystore contents that are controlled by the deployment resource.
     * 
     */
    @Import(name="keystoreContents")
    private @Nullable Output> keystoreContents;

    /**
     * @return Keystore contents that are controlled by the deployment resource.
     * 
     */
    public Optional>> keystoreContents() {
        return Optional.ofNullable(this.keystoreContents);
    }

    /**
     * 'master' topology element
     * 
     */
    @Import(name="master")
    private @Nullable Output master;

    /**
     * @return 'master' topology element
     * 
     */
    public Optional> master() {
        return Optional.ofNullable(this.master);
    }

    /**
     * 'ml' topology element
     * 
     */
    @Import(name="ml")
    private @Nullable Output ml;

    /**
     * @return 'ml' topology element
     * 
     */
    public Optional> ml() {
        return Optional.ofNullable(this.ml);
    }

    /**
     * A human readable reference for the Elasticsearch resource. The default value `main-elasticsearch` is recommended.
     * 
     */
    @Import(name="refId")
    private @Nullable Output refId;

    /**
     * @return A human readable reference for the Elasticsearch resource. The default value `main-elasticsearch` is recommended.
     * 
     */
    public Optional> refId() {
        return Optional.ofNullable(this.refId);
    }

    /**
     * Elasticsearch Service (ESS) region where the deployment should be hosted. For Elastic Cloud Enterprise (ECE) installations, set to `"ece-region".
     * 
     */
    @Import(name="region")
    private @Nullable Output region;

    /**
     * @return Elasticsearch Service (ESS) region where the deployment should be hosted. For Elastic Cloud Enterprise (ECE) installations, set to `"ece-region".
     * 
     */
    public Optional> region() {
        return Optional.ofNullable(this.region);
    }

    /**
     * Optional Elasticsearch remote clusters to configure for the Elasticsearch resource, can be set multiple times
     * 
     */
    @Import(name="remoteClusters")
    private @Nullable Output> remoteClusters;

    /**
     * @return Optional Elasticsearch remote clusters to configure for the Elasticsearch resource, can be set multiple times
     * 
     */
    public Optional>> remoteClusters() {
        return Optional.ofNullable(this.remoteClusters);
    }

    /**
     * The Elasticsearch resource unique identifier
     * 
     */
    @Import(name="resourceId")
    private @Nullable Output resourceId;

    /**
     * @return The Elasticsearch resource unique identifier
     * 
     */
    public Optional> resourceId() {
        return Optional.ofNullable(this.resourceId);
    }

    /**
     * (ECE only) Snapshot configuration settings for an Elasticsearch cluster.
     * 
     */
    @Import(name="snapshot")
    private @Nullable Output snapshot;

    /**
     * @return (ECE only) Snapshot configuration settings for an Elasticsearch cluster.
     * 
     */
    public Optional> snapshot() {
        return Optional.ofNullable(this.snapshot);
    }

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

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

    /**
     * Configuration strategy type autodetect, grow_and_shrink, rolling_grow_and_shrink, rolling_all
     * 
     */
    @Import(name="strategy")
    private @Nullable Output strategy;

    /**
     * @return Configuration strategy type autodetect, grow_and_shrink, rolling_grow_and_shrink, rolling_all
     * 
     */
    public Optional> strategy() {
        return Optional.ofNullable(this.strategy);
    }

    /**
     * Optional Elasticsearch account trust settings.
     * 
     */
    @Import(name="trustAccounts")
    private @Nullable Output> trustAccounts;

    /**
     * @return Optional Elasticsearch account trust settings.
     * 
     */
    public Optional>> trustAccounts() {
        return Optional.ofNullable(this.trustAccounts);
    }

    /**
     * Optional Elasticsearch external trust settings.
     * 
     */
    @Import(name="trustExternals")
    private @Nullable Output> trustExternals;

    /**
     * @return Optional Elasticsearch external trust settings.
     * 
     */
    public Optional>> trustExternals() {
        return Optional.ofNullable(this.trustExternals);
    }

    /**
     * 'warm' topology element
     * 
     */
    @Import(name="warm")
    private @Nullable Output warm;

    /**
     * @return 'warm' topology element
     * 
     */
    public Optional> warm() {
        return Optional.ofNullable(this.warm);
    }

    private DeploymentElasticsearchArgs() {}

    private DeploymentElasticsearchArgs(DeploymentElasticsearchArgs $) {
        this.autoscale = $.autoscale;
        this.cloudId = $.cloudId;
        this.cold = $.cold;
        this.config = $.config;
        this.coordinating = $.coordinating;
        this.extensions = $.extensions;
        this.frozen = $.frozen;
        this.hot = $.hot;
        this.httpEndpoint = $.httpEndpoint;
        this.httpsEndpoint = $.httpsEndpoint;
        this.keystoreContents = $.keystoreContents;
        this.master = $.master;
        this.ml = $.ml;
        this.refId = $.refId;
        this.region = $.region;
        this.remoteClusters = $.remoteClusters;
        this.resourceId = $.resourceId;
        this.snapshot = $.snapshot;
        this.snapshotSource = $.snapshotSource;
        this.strategy = $.strategy;
        this.trustAccounts = $.trustAccounts;
        this.trustExternals = $.trustExternals;
        this.warm = $.warm;
    }

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

    public static final class Builder {
        private DeploymentElasticsearchArgs $;

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

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

        /**
         * @param autoscale Enable or disable autoscaling. Defaults to the setting coming from the deployment template.
         * 
         * @return builder
         * 
         */
        public Builder autoscale(@Nullable Output autoscale) {
            $.autoscale = autoscale;
            return this;
        }

        /**
         * @param autoscale Enable or disable autoscaling. Defaults to the setting coming from the deployment template.
         * 
         * @return builder
         * 
         */
        public Builder autoscale(Boolean autoscale) {
            return autoscale(Output.of(autoscale));
        }

        /**
         * @param cloudId The encoded Elasticsearch credentials to use in Beats or Logstash
         * 
         * @return builder
         * 
         */
        public Builder cloudId(@Nullable Output cloudId) {
            $.cloudId = cloudId;
            return this;
        }

        /**
         * @param cloudId The encoded Elasticsearch credentials to use in Beats or Logstash
         * 
         * @return builder
         * 
         */
        public Builder cloudId(String cloudId) {
            return cloudId(Output.of(cloudId));
        }

        /**
         * @param cold 'cold' topology element
         * 
         * @return builder
         * 
         */
        public Builder cold(@Nullable Output cold) {
            $.cold = cold;
            return this;
        }

        /**
         * @param cold 'cold' topology element
         * 
         * @return builder
         * 
         */
        public Builder cold(DeploymentElasticsearchColdArgs cold) {
            return cold(Output.of(cold));
        }

        /**
         * @param config Elasticsearch settings which will be applied to all topologies
         * 
         * @return builder
         * 
         */
        public Builder config(@Nullable Output config) {
            $.config = config;
            return this;
        }

        /**
         * @param config Elasticsearch settings which will be applied to all topologies
         * 
         * @return builder
         * 
         */
        public Builder config(DeploymentElasticsearchConfigArgs config) {
            return config(Output.of(config));
        }

        /**
         * @param coordinating 'coordinating' topology element
         * 
         * @return builder
         * 
         */
        public Builder coordinating(@Nullable Output coordinating) {
            $.coordinating = coordinating;
            return this;
        }

        /**
         * @param coordinating 'coordinating' topology element
         * 
         * @return builder
         * 
         */
        public Builder coordinating(DeploymentElasticsearchCoordinatingArgs coordinating) {
            return coordinating(Output.of(coordinating));
        }

        /**
         * @param extensions Optional Elasticsearch extensions such as custom bundles or plugins.
         * 
         * @return builder
         * 
         */
        public Builder extensions(@Nullable Output> extensions) {
            $.extensions = extensions;
            return this;
        }

        /**
         * @param extensions Optional Elasticsearch extensions such as custom bundles or plugins.
         * 
         * @return builder
         * 
         */
        public Builder extensions(List extensions) {
            return extensions(Output.of(extensions));
        }

        /**
         * @param extensions Optional Elasticsearch extensions such as custom bundles or plugins.
         * 
         * @return builder
         * 
         */
        public Builder extensions(DeploymentElasticsearchExtensionArgs... extensions) {
            return extensions(List.of(extensions));
        }

        /**
         * @param frozen 'frozen' topology element
         * 
         * @return builder
         * 
         */
        public Builder frozen(@Nullable Output frozen) {
            $.frozen = frozen;
            return this;
        }

        /**
         * @param frozen 'frozen' topology element
         * 
         * @return builder
         * 
         */
        public Builder frozen(DeploymentElasticsearchFrozenArgs frozen) {
            return frozen(Output.of(frozen));
        }

        /**
         * @param hot 'hot' topology element
         * 
         * @return builder
         * 
         */
        public Builder hot(Output hot) {
            $.hot = hot;
            return this;
        }

        /**
         * @param hot 'hot' topology element
         * 
         * @return builder
         * 
         */
        public Builder hot(DeploymentElasticsearchHotArgs hot) {
            return hot(Output.of(hot));
        }

        /**
         * @param httpEndpoint The Elasticsearch resource HTTP endpoint
         * 
         * @return builder
         * 
         */
        public Builder httpEndpoint(@Nullable Output httpEndpoint) {
            $.httpEndpoint = httpEndpoint;
            return this;
        }

        /**
         * @param httpEndpoint The Elasticsearch resource HTTP endpoint
         * 
         * @return builder
         * 
         */
        public Builder httpEndpoint(String httpEndpoint) {
            return httpEndpoint(Output.of(httpEndpoint));
        }

        /**
         * @param httpsEndpoint The Elasticsearch resource HTTPs endpoint
         * 
         * @return builder
         * 
         */
        public Builder httpsEndpoint(@Nullable Output httpsEndpoint) {
            $.httpsEndpoint = httpsEndpoint;
            return this;
        }

        /**
         * @param httpsEndpoint The Elasticsearch resource HTTPs endpoint
         * 
         * @return builder
         * 
         */
        public Builder httpsEndpoint(String httpsEndpoint) {
            return httpsEndpoint(Output.of(httpsEndpoint));
        }

        /**
         * @param keystoreContents Keystore contents that are controlled by the deployment resource.
         * 
         * @return builder
         * 
         */
        public Builder keystoreContents(@Nullable Output> keystoreContents) {
            $.keystoreContents = keystoreContents;
            return this;
        }

        /**
         * @param keystoreContents Keystore contents that are controlled by the deployment resource.
         * 
         * @return builder
         * 
         */
        public Builder keystoreContents(Map keystoreContents) {
            return keystoreContents(Output.of(keystoreContents));
        }

        /**
         * @param master 'master' topology element
         * 
         * @return builder
         * 
         */
        public Builder master(@Nullable Output master) {
            $.master = master;
            return this;
        }

        /**
         * @param master 'master' topology element
         * 
         * @return builder
         * 
         */
        public Builder master(DeploymentElasticsearchMasterArgs master) {
            return master(Output.of(master));
        }

        /**
         * @param ml 'ml' topology element
         * 
         * @return builder
         * 
         */
        public Builder ml(@Nullable Output ml) {
            $.ml = ml;
            return this;
        }

        /**
         * @param ml 'ml' topology element
         * 
         * @return builder
         * 
         */
        public Builder ml(DeploymentElasticsearchMlArgs ml) {
            return ml(Output.of(ml));
        }

        /**
         * @param refId A human readable reference for the Elasticsearch resource. The default value `main-elasticsearch` is recommended.
         * 
         * @return builder
         * 
         */
        public Builder refId(@Nullable Output refId) {
            $.refId = refId;
            return this;
        }

        /**
         * @param refId A human readable reference for the Elasticsearch resource. The default value `main-elasticsearch` is recommended.
         * 
         * @return builder
         * 
         */
        public Builder refId(String refId) {
            return refId(Output.of(refId));
        }

        /**
         * @param region Elasticsearch Service (ESS) region where the deployment should be hosted. For Elastic Cloud Enterprise (ECE) installations, set to `"ece-region".
         * 
         * @return builder
         * 
         */
        public Builder region(@Nullable Output region) {
            $.region = region;
            return this;
        }

        /**
         * @param region Elasticsearch Service (ESS) region where the deployment should be hosted. For Elastic Cloud Enterprise (ECE) installations, set to `"ece-region".
         * 
         * @return builder
         * 
         */
        public Builder region(String region) {
            return region(Output.of(region));
        }

        /**
         * @param remoteClusters Optional Elasticsearch remote clusters to configure for the Elasticsearch resource, can be set multiple times
         * 
         * @return builder
         * 
         */
        public Builder remoteClusters(@Nullable Output> remoteClusters) {
            $.remoteClusters = remoteClusters;
            return this;
        }

        /**
         * @param remoteClusters Optional Elasticsearch remote clusters to configure for the Elasticsearch resource, can be set multiple times
         * 
         * @return builder
         * 
         */
        public Builder remoteClusters(List remoteClusters) {
            return remoteClusters(Output.of(remoteClusters));
        }

        /**
         * @param remoteClusters Optional Elasticsearch remote clusters to configure for the Elasticsearch resource, can be set multiple times
         * 
         * @return builder
         * 
         */
        public Builder remoteClusters(DeploymentElasticsearchRemoteClusterArgs... remoteClusters) {
            return remoteClusters(List.of(remoteClusters));
        }

        /**
         * @param resourceId The Elasticsearch resource unique identifier
         * 
         * @return builder
         * 
         */
        public Builder resourceId(@Nullable Output resourceId) {
            $.resourceId = resourceId;
            return this;
        }

        /**
         * @param resourceId The Elasticsearch resource unique identifier
         * 
         * @return builder
         * 
         */
        public Builder resourceId(String resourceId) {
            return resourceId(Output.of(resourceId));
        }

        /**
         * @param snapshot (ECE only) Snapshot configuration settings for an Elasticsearch cluster.
         * 
         * @return builder
         * 
         */
        public Builder snapshot(@Nullable Output snapshot) {
            $.snapshot = snapshot;
            return this;
        }

        /**
         * @param snapshot (ECE only) Snapshot configuration settings for an Elasticsearch cluster.
         * 
         * @return builder
         * 
         */
        public Builder snapshot(DeploymentElasticsearchSnapshotArgs snapshot) {
            return snapshot(Output.of(snapshot));
        }

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

        public Builder snapshotSource(DeploymentElasticsearchSnapshotSourceArgs snapshotSource) {
            return snapshotSource(Output.of(snapshotSource));
        }

        /**
         * @param strategy Configuration strategy type autodetect, grow_and_shrink, rolling_grow_and_shrink, rolling_all
         * 
         * @return builder
         * 
         */
        public Builder strategy(@Nullable Output strategy) {
            $.strategy = strategy;
            return this;
        }

        /**
         * @param strategy Configuration strategy type autodetect, grow_and_shrink, rolling_grow_and_shrink, rolling_all
         * 
         * @return builder
         * 
         */
        public Builder strategy(String strategy) {
            return strategy(Output.of(strategy));
        }

        /**
         * @param trustAccounts Optional Elasticsearch account trust settings.
         * 
         * @return builder
         * 
         */
        public Builder trustAccounts(@Nullable Output> trustAccounts) {
            $.trustAccounts = trustAccounts;
            return this;
        }

        /**
         * @param trustAccounts Optional Elasticsearch account trust settings.
         * 
         * @return builder
         * 
         */
        public Builder trustAccounts(List trustAccounts) {
            return trustAccounts(Output.of(trustAccounts));
        }

        /**
         * @param trustAccounts Optional Elasticsearch account trust settings.
         * 
         * @return builder
         * 
         */
        public Builder trustAccounts(DeploymentElasticsearchTrustAccountArgs... trustAccounts) {
            return trustAccounts(List.of(trustAccounts));
        }

        /**
         * @param trustExternals Optional Elasticsearch external trust settings.
         * 
         * @return builder
         * 
         */
        public Builder trustExternals(@Nullable Output> trustExternals) {
            $.trustExternals = trustExternals;
            return this;
        }

        /**
         * @param trustExternals Optional Elasticsearch external trust settings.
         * 
         * @return builder
         * 
         */
        public Builder trustExternals(List trustExternals) {
            return trustExternals(Output.of(trustExternals));
        }

        /**
         * @param trustExternals Optional Elasticsearch external trust settings.
         * 
         * @return builder
         * 
         */
        public Builder trustExternals(DeploymentElasticsearchTrustExternalArgs... trustExternals) {
            return trustExternals(List.of(trustExternals));
        }

        /**
         * @param warm 'warm' topology element
         * 
         * @return builder
         * 
         */
        public Builder warm(@Nullable Output warm) {
            $.warm = warm;
            return this;
        }

        /**
         * @param warm 'warm' topology element
         * 
         * @return builder
         * 
         */
        public Builder warm(DeploymentElasticsearchWarmArgs warm) {
            return warm(Output.of(warm));
        }

        public DeploymentElasticsearchArgs build() {
            if ($.hot == null) {
                throw new MissingRequiredPropertyException("DeploymentElasticsearchArgs", "hot");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy