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

com.pulumi.azurenative.workloads.inputs.ThreeTierConfigurationArgs Maven / Gradle / Ivy

There is a newer version: 2.82.0
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.azurenative.workloads.inputs;

import com.pulumi.azurenative.workloads.inputs.ApplicationServerConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.CentralServerConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.DatabaseConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.HighAvailabilityConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.NetworkConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.StorageConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.ThreeTierFullResourceNamesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Gets or sets the three tier SAP configuration. For prerequisites for creating the infrastructure, please see [here](https://go.microsoft.com/fwlink/?linkid=2212611&clcid=0x409)
 * 
 */
public final class ThreeTierConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final ThreeTierConfigurationArgs Empty = new ThreeTierConfigurationArgs();

    /**
     * The application resource group where SAP system resources will be deployed.
     * 
     */
    @Import(name="appResourceGroup", required=true)
    private Output appResourceGroup;

    /**
     * @return The application resource group where SAP system resources will be deployed.
     * 
     */
    public Output appResourceGroup() {
        return this.appResourceGroup;
    }

    /**
     * The application server configuration.
     * 
     */
    @Import(name="applicationServer", required=true)
    private Output applicationServer;

    /**
     * @return The application server configuration.
     * 
     */
    public Output applicationServer() {
        return this.applicationServer;
    }

    /**
     * The central server configuration.
     * 
     */
    @Import(name="centralServer", required=true)
    private Output centralServer;

    /**
     * @return The central server configuration.
     * 
     */
    public Output centralServer() {
        return this.centralServer;
    }

    /**
     * The set of custom names to be used for underlying azure resources that are part of the SAP system.
     * 
     */
    @Import(name="customResourceNames")
    private @Nullable Output customResourceNames;

    /**
     * @return The set of custom names to be used for underlying azure resources that are part of the SAP system.
     * 
     */
    public Optional> customResourceNames() {
        return Optional.ofNullable(this.customResourceNames);
    }

    /**
     * The database configuration.
     * 
     */
    @Import(name="databaseServer", required=true)
    private Output databaseServer;

    /**
     * @return The database configuration.
     * 
     */
    public Output databaseServer() {
        return this.databaseServer;
    }

    /**
     * The type of SAP deployment, single server or Three tier.
     * Expected value is 'ThreeTier'.
     * 
     */
    @Import(name="deploymentType", required=true)
    private Output deploymentType;

    /**
     * @return The type of SAP deployment, single server or Three tier.
     * Expected value is 'ThreeTier'.
     * 
     */
    public Output deploymentType() {
        return this.deploymentType;
    }

    /**
     * The high availability configuration.
     * 
     */
    @Import(name="highAvailabilityConfig")
    private @Nullable Output highAvailabilityConfig;

    /**
     * @return The high availability configuration.
     * 
     */
    public Optional> highAvailabilityConfig() {
        return Optional.ofNullable(this.highAvailabilityConfig);
    }

    /**
     * Network configuration common to all servers
     * 
     */
    @Import(name="networkConfiguration")
    private @Nullable Output networkConfiguration;

    /**
     * @return Network configuration common to all servers
     * 
     */
    public Optional> networkConfiguration() {
        return Optional.ofNullable(this.networkConfiguration);
    }

    /**
     * The storage configuration.
     * 
     */
    @Import(name="storageConfiguration")
    private @Nullable Output storageConfiguration;

    /**
     * @return The storage configuration.
     * 
     */
    public Optional> storageConfiguration() {
        return Optional.ofNullable(this.storageConfiguration);
    }

    private ThreeTierConfigurationArgs() {}

    private ThreeTierConfigurationArgs(ThreeTierConfigurationArgs $) {
        this.appResourceGroup = $.appResourceGroup;
        this.applicationServer = $.applicationServer;
        this.centralServer = $.centralServer;
        this.customResourceNames = $.customResourceNames;
        this.databaseServer = $.databaseServer;
        this.deploymentType = $.deploymentType;
        this.highAvailabilityConfig = $.highAvailabilityConfig;
        this.networkConfiguration = $.networkConfiguration;
        this.storageConfiguration = $.storageConfiguration;
    }

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

    public static final class Builder {
        private ThreeTierConfigurationArgs $;

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

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

        /**
         * @param appResourceGroup The application resource group where SAP system resources will be deployed.
         * 
         * @return builder
         * 
         */
        public Builder appResourceGroup(Output appResourceGroup) {
            $.appResourceGroup = appResourceGroup;
            return this;
        }

        /**
         * @param appResourceGroup The application resource group where SAP system resources will be deployed.
         * 
         * @return builder
         * 
         */
        public Builder appResourceGroup(String appResourceGroup) {
            return appResourceGroup(Output.of(appResourceGroup));
        }

        /**
         * @param applicationServer The application server configuration.
         * 
         * @return builder
         * 
         */
        public Builder applicationServer(Output applicationServer) {
            $.applicationServer = applicationServer;
            return this;
        }

        /**
         * @param applicationServer The application server configuration.
         * 
         * @return builder
         * 
         */
        public Builder applicationServer(ApplicationServerConfigurationArgs applicationServer) {
            return applicationServer(Output.of(applicationServer));
        }

        /**
         * @param centralServer The central server configuration.
         * 
         * @return builder
         * 
         */
        public Builder centralServer(Output centralServer) {
            $.centralServer = centralServer;
            return this;
        }

        /**
         * @param centralServer The central server configuration.
         * 
         * @return builder
         * 
         */
        public Builder centralServer(CentralServerConfigurationArgs centralServer) {
            return centralServer(Output.of(centralServer));
        }

        /**
         * @param customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system.
         * 
         * @return builder
         * 
         */
        public Builder customResourceNames(@Nullable Output customResourceNames) {
            $.customResourceNames = customResourceNames;
            return this;
        }

        /**
         * @param customResourceNames The set of custom names to be used for underlying azure resources that are part of the SAP system.
         * 
         * @return builder
         * 
         */
        public Builder customResourceNames(ThreeTierFullResourceNamesArgs customResourceNames) {
            return customResourceNames(Output.of(customResourceNames));
        }

        /**
         * @param databaseServer The database configuration.
         * 
         * @return builder
         * 
         */
        public Builder databaseServer(Output databaseServer) {
            $.databaseServer = databaseServer;
            return this;
        }

        /**
         * @param databaseServer The database configuration.
         * 
         * @return builder
         * 
         */
        public Builder databaseServer(DatabaseConfigurationArgs databaseServer) {
            return databaseServer(Output.of(databaseServer));
        }

        /**
         * @param deploymentType The type of SAP deployment, single server or Three tier.
         * Expected value is 'ThreeTier'.
         * 
         * @return builder
         * 
         */
        public Builder deploymentType(Output deploymentType) {
            $.deploymentType = deploymentType;
            return this;
        }

        /**
         * @param deploymentType The type of SAP deployment, single server or Three tier.
         * Expected value is 'ThreeTier'.
         * 
         * @return builder
         * 
         */
        public Builder deploymentType(String deploymentType) {
            return deploymentType(Output.of(deploymentType));
        }

        /**
         * @param highAvailabilityConfig The high availability configuration.
         * 
         * @return builder
         * 
         */
        public Builder highAvailabilityConfig(@Nullable Output highAvailabilityConfig) {
            $.highAvailabilityConfig = highAvailabilityConfig;
            return this;
        }

        /**
         * @param highAvailabilityConfig The high availability configuration.
         * 
         * @return builder
         * 
         */
        public Builder highAvailabilityConfig(HighAvailabilityConfigurationArgs highAvailabilityConfig) {
            return highAvailabilityConfig(Output.of(highAvailabilityConfig));
        }

        /**
         * @param networkConfiguration Network configuration common to all servers
         * 
         * @return builder
         * 
         */
        public Builder networkConfiguration(@Nullable Output networkConfiguration) {
            $.networkConfiguration = networkConfiguration;
            return this;
        }

        /**
         * @param networkConfiguration Network configuration common to all servers
         * 
         * @return builder
         * 
         */
        public Builder networkConfiguration(NetworkConfigurationArgs networkConfiguration) {
            return networkConfiguration(Output.of(networkConfiguration));
        }

        /**
         * @param storageConfiguration The storage configuration.
         * 
         * @return builder
         * 
         */
        public Builder storageConfiguration(@Nullable Output storageConfiguration) {
            $.storageConfiguration = storageConfiguration;
            return this;
        }

        /**
         * @param storageConfiguration The storage configuration.
         * 
         * @return builder
         * 
         */
        public Builder storageConfiguration(StorageConfigurationArgs storageConfiguration) {
            return storageConfiguration(Output.of(storageConfiguration));
        }

        public ThreeTierConfigurationArgs build() {
            if ($.appResourceGroup == null) {
                throw new MissingRequiredPropertyException("ThreeTierConfigurationArgs", "appResourceGroup");
            }
            if ($.applicationServer == null) {
                throw new MissingRequiredPropertyException("ThreeTierConfigurationArgs", "applicationServer");
            }
            if ($.centralServer == null) {
                throw new MissingRequiredPropertyException("ThreeTierConfigurationArgs", "centralServer");
            }
            if ($.databaseServer == null) {
                throw new MissingRequiredPropertyException("ThreeTierConfigurationArgs", "databaseServer");
            }
            $.deploymentType = Codegen.stringProp("deploymentType").output().arg($.deploymentType).require();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy