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

com.pulumi.googlenative.datafusion.v1.InstanceArgs Maven / Gradle / Ivy

// *** 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.googlenative.datafusion.v1;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.datafusion.v1.enums.InstanceType;
import com.pulumi.googlenative.datafusion.v1.inputs.CryptoKeyConfigArgs;
import com.pulumi.googlenative.datafusion.v1.inputs.EventPublishConfigArgs;
import com.pulumi.googlenative.datafusion.v1.inputs.NetworkConfigArgs;
import java.lang.Boolean;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final InstanceArgs Empty = new InstanceArgs();

    /**
     * The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature.
     * 
     */
    @Import(name="cryptoKeyConfig")
    private @Nullable Output cryptoKeyConfig;

    /**
     * @return The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature.
     * 
     */
    public Optional> cryptoKeyConfig() {
        return Optional.ofNullable(this.cryptoKeyConfig);
    }

    /**
     * User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.
     * 
     */
    @Import(name="dataprocServiceAccount")
    private @Nullable Output dataprocServiceAccount;

    /**
     * @return User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.
     * 
     */
    public Optional> dataprocServiceAccount() {
        return Optional.ofNullable(this.dataprocServiceAccount);
    }

    /**
     * A description of this instance.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return A description of this instance.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Display name for an instance.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return Display name for an instance.
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * Option to enable granular role-based access control.
     * 
     */
    @Import(name="enableRbac")
    private @Nullable Output enableRbac;

    /**
     * @return Option to enable granular role-based access control.
     * 
     */
    public Optional> enableRbac() {
        return Optional.ofNullable(this.enableRbac);
    }

    /**
     * Option to enable Stackdriver Logging.
     * 
     */
    @Import(name="enableStackdriverLogging")
    private @Nullable Output enableStackdriverLogging;

    /**
     * @return Option to enable Stackdriver Logging.
     * 
     */
    public Optional> enableStackdriverLogging() {
        return Optional.ofNullable(this.enableStackdriverLogging);
    }

    /**
     * Option to enable Stackdriver Monitoring.
     * 
     */
    @Import(name="enableStackdriverMonitoring")
    private @Nullable Output enableStackdriverMonitoring;

    /**
     * @return Option to enable Stackdriver Monitoring.
     * 
     */
    public Optional> enableStackdriverMonitoring() {
        return Optional.ofNullable(this.enableStackdriverMonitoring);
    }

    /**
     * Option to enable granular zone separation.
     * 
     */
    @Import(name="enableZoneSeparation")
    private @Nullable Output enableZoneSeparation;

    /**
     * @return Option to enable granular zone separation.
     * 
     */
    public Optional> enableZoneSeparation() {
        return Optional.ofNullable(this.enableZoneSeparation);
    }

    /**
     * Option to enable and pass metadata for event publishing.
     * 
     */
    @Import(name="eventPublishConfig")
    private @Nullable Output eventPublishConfig;

    /**
     * @return Option to enable and pass metadata for event publishing.
     * 
     */
    public Optional> eventPublishConfig() {
        return Optional.ofNullable(this.eventPublishConfig);
    }

    /**
     * Required. The name of the instance to create.
     * 
     */
    @Import(name="instanceId", required=true)
    private Output instanceId;

    /**
     * @return Required. The name of the instance to create.
     * 
     */
    public Output instanceId() {
        return this.instanceId;
    }

    /**
     * The resource labels for instance to use to annotate any related underlying resources such as Compute Engine VMs. The character '=' is not allowed to be used within the labels.
     * 
     */
    @Import(name="labels")
    private @Nullable Output> labels;

    /**
     * @return The resource labels for instance to use to annotate any related underlying resources such as Compute Engine VMs. The character '=' is not allowed to be used within the labels.
     * 
     */
    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

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

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

    /**
     * Network configuration options. These are required when a private Data Fusion instance is to be created.
     * 
     */
    @Import(name="networkConfig")
    private @Nullable Output networkConfig;

    /**
     * @return Network configuration options. These are required when a private Data Fusion instance is to be created.
     * 
     */
    public Optional> networkConfig() {
        return Optional.ofNullable(this.networkConfig);
    }

    /**
     * Map of additional options used to configure the behavior of Data Fusion instance.
     * 
     */
    @Import(name="options")
    private @Nullable Output> options;

    /**
     * @return Map of additional options used to configure the behavior of Data Fusion instance.
     * 
     */
    public Optional>> options() {
        return Optional.ofNullable(this.options);
    }

    /**
     * Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.
     * 
     */
    @Import(name="privateInstance")
    private @Nullable Output privateInstance;

    /**
     * @return Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.
     * 
     */
    public Optional> privateInstance() {
        return Optional.ofNullable(this.privateInstance);
    }

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

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

    /**
     * Instance type.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Instance type.
     * 
     */
    public Output type() {
        return this.type;
    }

    /**
     * Current version of the Data Fusion. Only specifiable in Update.
     * 
     */
    @Import(name="version")
    private @Nullable Output version;

    /**
     * @return Current version of the Data Fusion. Only specifiable in Update.
     * 
     */
    public Optional> version() {
        return Optional.ofNullable(this.version);
    }

    /**
     * Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.
     * 
     */
    @Import(name="zone")
    private @Nullable Output zone;

    /**
     * @return Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.
     * 
     */
    public Optional> zone() {
        return Optional.ofNullable(this.zone);
    }

    private InstanceArgs() {}

    private InstanceArgs(InstanceArgs $) {
        this.cryptoKeyConfig = $.cryptoKeyConfig;
        this.dataprocServiceAccount = $.dataprocServiceAccount;
        this.description = $.description;
        this.displayName = $.displayName;
        this.enableRbac = $.enableRbac;
        this.enableStackdriverLogging = $.enableStackdriverLogging;
        this.enableStackdriverMonitoring = $.enableStackdriverMonitoring;
        this.enableZoneSeparation = $.enableZoneSeparation;
        this.eventPublishConfig = $.eventPublishConfig;
        this.instanceId = $.instanceId;
        this.labels = $.labels;
        this.location = $.location;
        this.networkConfig = $.networkConfig;
        this.options = $.options;
        this.privateInstance = $.privateInstance;
        this.project = $.project;
        this.type = $.type;
        this.version = $.version;
        this.zone = $.zone;
    }

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

    public static final class Builder {
        private InstanceArgs $;

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

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

        /**
         * @param cryptoKeyConfig The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature.
         * 
         * @return builder
         * 
         */
        public Builder cryptoKeyConfig(@Nullable Output cryptoKeyConfig) {
            $.cryptoKeyConfig = cryptoKeyConfig;
            return this;
        }

        /**
         * @param cryptoKeyConfig The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature.
         * 
         * @return builder
         * 
         */
        public Builder cryptoKeyConfig(CryptoKeyConfigArgs cryptoKeyConfig) {
            return cryptoKeyConfig(Output.of(cryptoKeyConfig));
        }

        /**
         * @param dataprocServiceAccount User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.
         * 
         * @return builder
         * 
         */
        public Builder dataprocServiceAccount(@Nullable Output dataprocServiceAccount) {
            $.dataprocServiceAccount = dataprocServiceAccount;
            return this;
        }

        /**
         * @param dataprocServiceAccount User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.
         * 
         * @return builder
         * 
         */
        public Builder dataprocServiceAccount(String dataprocServiceAccount) {
            return dataprocServiceAccount(Output.of(dataprocServiceAccount));
        }

        /**
         * @param description A description of this instance.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description A description of this instance.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param displayName Display name for an instance.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName Display name for an instance.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param enableRbac Option to enable granular role-based access control.
         * 
         * @return builder
         * 
         */
        public Builder enableRbac(@Nullable Output enableRbac) {
            $.enableRbac = enableRbac;
            return this;
        }

        /**
         * @param enableRbac Option to enable granular role-based access control.
         * 
         * @return builder
         * 
         */
        public Builder enableRbac(Boolean enableRbac) {
            return enableRbac(Output.of(enableRbac));
        }

        /**
         * @param enableStackdriverLogging Option to enable Stackdriver Logging.
         * 
         * @return builder
         * 
         */
        public Builder enableStackdriverLogging(@Nullable Output enableStackdriverLogging) {
            $.enableStackdriverLogging = enableStackdriverLogging;
            return this;
        }

        /**
         * @param enableStackdriverLogging Option to enable Stackdriver Logging.
         * 
         * @return builder
         * 
         */
        public Builder enableStackdriverLogging(Boolean enableStackdriverLogging) {
            return enableStackdriverLogging(Output.of(enableStackdriverLogging));
        }

        /**
         * @param enableStackdriverMonitoring Option to enable Stackdriver Monitoring.
         * 
         * @return builder
         * 
         */
        public Builder enableStackdriverMonitoring(@Nullable Output enableStackdriverMonitoring) {
            $.enableStackdriverMonitoring = enableStackdriverMonitoring;
            return this;
        }

        /**
         * @param enableStackdriverMonitoring Option to enable Stackdriver Monitoring.
         * 
         * @return builder
         * 
         */
        public Builder enableStackdriverMonitoring(Boolean enableStackdriverMonitoring) {
            return enableStackdriverMonitoring(Output.of(enableStackdriverMonitoring));
        }

        /**
         * @param enableZoneSeparation Option to enable granular zone separation.
         * 
         * @return builder
         * 
         */
        public Builder enableZoneSeparation(@Nullable Output enableZoneSeparation) {
            $.enableZoneSeparation = enableZoneSeparation;
            return this;
        }

        /**
         * @param enableZoneSeparation Option to enable granular zone separation.
         * 
         * @return builder
         * 
         */
        public Builder enableZoneSeparation(Boolean enableZoneSeparation) {
            return enableZoneSeparation(Output.of(enableZoneSeparation));
        }

        /**
         * @param eventPublishConfig Option to enable and pass metadata for event publishing.
         * 
         * @return builder
         * 
         */
        public Builder eventPublishConfig(@Nullable Output eventPublishConfig) {
            $.eventPublishConfig = eventPublishConfig;
            return this;
        }

        /**
         * @param eventPublishConfig Option to enable and pass metadata for event publishing.
         * 
         * @return builder
         * 
         */
        public Builder eventPublishConfig(EventPublishConfigArgs eventPublishConfig) {
            return eventPublishConfig(Output.of(eventPublishConfig));
        }

        /**
         * @param instanceId Required. The name of the instance to create.
         * 
         * @return builder
         * 
         */
        public Builder instanceId(Output instanceId) {
            $.instanceId = instanceId;
            return this;
        }

        /**
         * @param instanceId Required. The name of the instance to create.
         * 
         * @return builder
         * 
         */
        public Builder instanceId(String instanceId) {
            return instanceId(Output.of(instanceId));
        }

        /**
         * @param labels The resource labels for instance to use to annotate any related underlying resources such as Compute Engine VMs. The character '=' is not allowed to be used within the labels.
         * 
         * @return builder
         * 
         */
        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        /**
         * @param labels The resource labels for instance to use to annotate any related underlying resources such as Compute Engine VMs. The character '=' is not allowed to be used within the labels.
         * 
         * @return builder
         * 
         */
        public Builder labels(Map labels) {
            return labels(Output.of(labels));
        }

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

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

        /**
         * @param networkConfig Network configuration options. These are required when a private Data Fusion instance is to be created.
         * 
         * @return builder
         * 
         */
        public Builder networkConfig(@Nullable Output networkConfig) {
            $.networkConfig = networkConfig;
            return this;
        }

        /**
         * @param networkConfig Network configuration options. These are required when a private Data Fusion instance is to be created.
         * 
         * @return builder
         * 
         */
        public Builder networkConfig(NetworkConfigArgs networkConfig) {
            return networkConfig(Output.of(networkConfig));
        }

        /**
         * @param options Map of additional options used to configure the behavior of Data Fusion instance.
         * 
         * @return builder
         * 
         */
        public Builder options(@Nullable Output> options) {
            $.options = options;
            return this;
        }

        /**
         * @param options Map of additional options used to configure the behavior of Data Fusion instance.
         * 
         * @return builder
         * 
         */
        public Builder options(Map options) {
            return options(Output.of(options));
        }

        /**
         * @param privateInstance Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.
         * 
         * @return builder
         * 
         */
        public Builder privateInstance(@Nullable Output privateInstance) {
            $.privateInstance = privateInstance;
            return this;
        }

        /**
         * @param privateInstance Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.
         * 
         * @return builder
         * 
         */
        public Builder privateInstance(Boolean privateInstance) {
            return privateInstance(Output.of(privateInstance));
        }

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

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

        /**
         * @param type Instance type.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Instance type.
         * 
         * @return builder
         * 
         */
        public Builder type(InstanceType type) {
            return type(Output.of(type));
        }

        /**
         * @param version Current version of the Data Fusion. Only specifiable in Update.
         * 
         * @return builder
         * 
         */
        public Builder version(@Nullable Output version) {
            $.version = version;
            return this;
        }

        /**
         * @param version Current version of the Data Fusion. Only specifiable in Update.
         * 
         * @return builder
         * 
         */
        public Builder version(String version) {
            return version(Output.of(version));
        }

        /**
         * @param zone Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.
         * 
         * @return builder
         * 
         */
        public Builder zone(@Nullable Output zone) {
            $.zone = zone;
            return this;
        }

        /**
         * @param zone Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.
         * 
         * @return builder
         * 
         */
        public Builder zone(String zone) {
            return zone(Output.of(zone));
        }

        public InstanceArgs build() {
            $.instanceId = Objects.requireNonNull($.instanceId, "expected parameter 'instanceId' to be non-null");
            $.type = Objects.requireNonNull($.type, "expected parameter 'type' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy