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

com.pulumi.azurenative.workloads.inputs.DeploymentConfigurationArgs 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.azurenative.workloads.inputs;

import com.pulumi.azurenative.workloads.inputs.ExternalInstallationSoftwareConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.SAPInstallWithoutOSConfigSoftwareConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.ServiceInitiatedSoftwareConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.SingleServerConfigurationArgs;
import com.pulumi.azurenative.workloads.inputs.ThreeTierConfigurationArgs;
import com.pulumi.core.Either;
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.Object;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Deployment Configuration.
 * 
 */
public final class DeploymentConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final DeploymentConfigurationArgs Empty = new DeploymentConfigurationArgs();

    /**
     * The geo-location where the SAP system is to be created.
     * 
     */
    @Import(name="appLocation")
    private @Nullable Output appLocation;

    /**
     * @return The geo-location where the SAP system is to be created.
     * 
     */
    public Optional> appLocation() {
        return Optional.ofNullable(this.appLocation);
    }

    /**
     * The configuration Type.
     * Expected value is 'Deployment'.
     * 
     */
    @Import(name="configurationType", required=true)
    private Output configurationType;

    /**
     * @return The configuration Type.
     * Expected value is 'Deployment'.
     * 
     */
    public Output configurationType() {
        return this.configurationType;
    }

    /**
     * The infrastructure configuration.
     * 
     */
    @Import(name="infrastructureConfiguration")
    private @Nullable Output> infrastructureConfiguration;

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

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

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

    private DeploymentConfigurationArgs() {}

    private DeploymentConfigurationArgs(DeploymentConfigurationArgs $) {
        this.appLocation = $.appLocation;
        this.configurationType = $.configurationType;
        this.infrastructureConfiguration = $.infrastructureConfiguration;
        this.softwareConfiguration = $.softwareConfiguration;
    }

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

    public static final class Builder {
        private DeploymentConfigurationArgs $;

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

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

        /**
         * @param appLocation The geo-location where the SAP system is to be created.
         * 
         * @return builder
         * 
         */
        public Builder appLocation(@Nullable Output appLocation) {
            $.appLocation = appLocation;
            return this;
        }

        /**
         * @param appLocation The geo-location where the SAP system is to be created.
         * 
         * @return builder
         * 
         */
        public Builder appLocation(String appLocation) {
            return appLocation(Output.of(appLocation));
        }

        /**
         * @param configurationType The configuration Type.
         * Expected value is 'Deployment'.
         * 
         * @return builder
         * 
         */
        public Builder configurationType(Output configurationType) {
            $.configurationType = configurationType;
            return this;
        }

        /**
         * @param configurationType The configuration Type.
         * Expected value is 'Deployment'.
         * 
         * @return builder
         * 
         */
        public Builder configurationType(String configurationType) {
            return configurationType(Output.of(configurationType));
        }

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

        /**
         * @param infrastructureConfiguration The infrastructure configuration.
         * 
         * @return builder
         * 
         */
        public Builder infrastructureConfiguration(Either infrastructureConfiguration) {
            return infrastructureConfiguration(Output.of(infrastructureConfiguration));
        }

        /**
         * @param infrastructureConfiguration The infrastructure configuration.
         * 
         * @return builder
         * 
         */
        public Builder infrastructureConfiguration(SingleServerConfigurationArgs infrastructureConfiguration) {
            return infrastructureConfiguration(Either.ofLeft(infrastructureConfiguration));
        }

        /**
         * @param infrastructureConfiguration The infrastructure configuration.
         * 
         * @return builder
         * 
         */
        public Builder infrastructureConfiguration(ThreeTierConfigurationArgs infrastructureConfiguration) {
            return infrastructureConfiguration(Either.ofRight(infrastructureConfiguration));
        }

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

        /**
         * @param softwareConfiguration The software configuration.
         * 
         * @return builder
         * 
         */
        public Builder softwareConfiguration(Object softwareConfiguration) {
            return softwareConfiguration(Output.of(softwareConfiguration));
        }

        public DeploymentConfigurationArgs build() {
            $.configurationType = Codegen.stringProp("configurationType").output().arg($.configurationType).require();
            return $;
        }
    }

}