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

com.pulumi.azurenative.network.FrontDoorArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.network;

import com.pulumi.azurenative.network.enums.FrontDoorEnabledState;
import com.pulumi.azurenative.network.inputs.BackendPoolArgs;
import com.pulumi.azurenative.network.inputs.BackendPoolsSettingsArgs;
import com.pulumi.azurenative.network.inputs.FrontendEndpointArgs;
import com.pulumi.azurenative.network.inputs.HealthProbeSettingsModelArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingSettingsModelArgs;
import com.pulumi.azurenative.network.inputs.RoutingRuleArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 FrontDoorArgs extends com.pulumi.resources.ResourceArgs {

    public static final FrontDoorArgs Empty = new FrontDoorArgs();

    /**
     * Backend pools available to routing rules.
     * 
     */
    @Import(name="backendPools")
    private @Nullable Output> backendPools;

    /**
     * @return Backend pools available to routing rules.
     * 
     */
    public Optional>> backendPools() {
        return Optional.ofNullable(this.backendPools);
    }

    /**
     * Settings for all backendPools
     * 
     */
    @Import(name="backendPoolsSettings")
    private @Nullable Output backendPoolsSettings;

    /**
     * @return Settings for all backendPools
     * 
     */
    public Optional> backendPoolsSettings() {
        return Optional.ofNullable(this.backendPoolsSettings);
    }

    /**
     * Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
     * 
     */
    @Import(name="enabledState")
    private @Nullable Output> enabledState;

    /**
     * @return Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
     * 
     */
    public Optional>> enabledState() {
        return Optional.ofNullable(this.enabledState);
    }

    /**
     * A friendly name for the frontDoor
     * 
     */
    @Import(name="friendlyName")
    private @Nullable Output friendlyName;

    /**
     * @return A friendly name for the frontDoor
     * 
     */
    public Optional> friendlyName() {
        return Optional.ofNullable(this.friendlyName);
    }

    /**
     * Name of the Front Door which is globally unique.
     * 
     */
    @Import(name="frontDoorName")
    private @Nullable Output frontDoorName;

    /**
     * @return Name of the Front Door which is globally unique.
     * 
     */
    public Optional> frontDoorName() {
        return Optional.ofNullable(this.frontDoorName);
    }

    /**
     * Frontend endpoints available to routing rules.
     * 
     */
    @Import(name="frontendEndpoints")
    private @Nullable Output> frontendEndpoints;

    /**
     * @return Frontend endpoints available to routing rules.
     * 
     */
    public Optional>> frontendEndpoints() {
        return Optional.ofNullable(this.frontendEndpoints);
    }

    /**
     * Health probe settings associated with this Front Door instance.
     * 
     */
    @Import(name="healthProbeSettings")
    private @Nullable Output> healthProbeSettings;

    /**
     * @return Health probe settings associated with this Front Door instance.
     * 
     */
    public Optional>> healthProbeSettings() {
        return Optional.ofNullable(this.healthProbeSettings);
    }

    /**
     * Load balancing settings associated with this Front Door instance.
     * 
     */
    @Import(name="loadBalancingSettings")
    private @Nullable Output> loadBalancingSettings;

    /**
     * @return Load balancing settings associated with this Front Door instance.
     * 
     */
    public Optional>> loadBalancingSettings() {
        return Optional.ofNullable(this.loadBalancingSettings);
    }

    /**
     * Resource location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Name of the Resource group within the Azure subscription.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Name of the Resource group within the Azure subscription.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Routing rules associated with this Front Door.
     * 
     */
    @Import(name="routingRules")
    private @Nullable Output> routingRules;

    /**
     * @return Routing rules associated with this Front Door.
     * 
     */
    public Optional>> routingRules() {
        return Optional.ofNullable(this.routingRules);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private FrontDoorArgs() {}

    private FrontDoorArgs(FrontDoorArgs $) {
        this.backendPools = $.backendPools;
        this.backendPoolsSettings = $.backendPoolsSettings;
        this.enabledState = $.enabledState;
        this.friendlyName = $.friendlyName;
        this.frontDoorName = $.frontDoorName;
        this.frontendEndpoints = $.frontendEndpoints;
        this.healthProbeSettings = $.healthProbeSettings;
        this.loadBalancingSettings = $.loadBalancingSettings;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.routingRules = $.routingRules;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private FrontDoorArgs $;

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

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

        /**
         * @param backendPools Backend pools available to routing rules.
         * 
         * @return builder
         * 
         */
        public Builder backendPools(@Nullable Output> backendPools) {
            $.backendPools = backendPools;
            return this;
        }

        /**
         * @param backendPools Backend pools available to routing rules.
         * 
         * @return builder
         * 
         */
        public Builder backendPools(List backendPools) {
            return backendPools(Output.of(backendPools));
        }

        /**
         * @param backendPools Backend pools available to routing rules.
         * 
         * @return builder
         * 
         */
        public Builder backendPools(BackendPoolArgs... backendPools) {
            return backendPools(List.of(backendPools));
        }

        /**
         * @param backendPoolsSettings Settings for all backendPools
         * 
         * @return builder
         * 
         */
        public Builder backendPoolsSettings(@Nullable Output backendPoolsSettings) {
            $.backendPoolsSettings = backendPoolsSettings;
            return this;
        }

        /**
         * @param backendPoolsSettings Settings for all backendPools
         * 
         * @return builder
         * 
         */
        public Builder backendPoolsSettings(BackendPoolsSettingsArgs backendPoolsSettings) {
            return backendPoolsSettings(Output.of(backendPoolsSettings));
        }

        /**
         * @param enabledState Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
         * 
         * @return builder
         * 
         */
        public Builder enabledState(@Nullable Output> enabledState) {
            $.enabledState = enabledState;
            return this;
        }

        /**
         * @param enabledState Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
         * 
         * @return builder
         * 
         */
        public Builder enabledState(Either enabledState) {
            return enabledState(Output.of(enabledState));
        }

        /**
         * @param enabledState Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
         * 
         * @return builder
         * 
         */
        public Builder enabledState(String enabledState) {
            return enabledState(Either.ofLeft(enabledState));
        }

        /**
         * @param enabledState Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled'
         * 
         * @return builder
         * 
         */
        public Builder enabledState(FrontDoorEnabledState enabledState) {
            return enabledState(Either.ofRight(enabledState));
        }

        /**
         * @param friendlyName A friendly name for the frontDoor
         * 
         * @return builder
         * 
         */
        public Builder friendlyName(@Nullable Output friendlyName) {
            $.friendlyName = friendlyName;
            return this;
        }

        /**
         * @param friendlyName A friendly name for the frontDoor
         * 
         * @return builder
         * 
         */
        public Builder friendlyName(String friendlyName) {
            return friendlyName(Output.of(friendlyName));
        }

        /**
         * @param frontDoorName Name of the Front Door which is globally unique.
         * 
         * @return builder
         * 
         */
        public Builder frontDoorName(@Nullable Output frontDoorName) {
            $.frontDoorName = frontDoorName;
            return this;
        }

        /**
         * @param frontDoorName Name of the Front Door which is globally unique.
         * 
         * @return builder
         * 
         */
        public Builder frontDoorName(String frontDoorName) {
            return frontDoorName(Output.of(frontDoorName));
        }

        /**
         * @param frontendEndpoints Frontend endpoints available to routing rules.
         * 
         * @return builder
         * 
         */
        public Builder frontendEndpoints(@Nullable Output> frontendEndpoints) {
            $.frontendEndpoints = frontendEndpoints;
            return this;
        }

        /**
         * @param frontendEndpoints Frontend endpoints available to routing rules.
         * 
         * @return builder
         * 
         */
        public Builder frontendEndpoints(List frontendEndpoints) {
            return frontendEndpoints(Output.of(frontendEndpoints));
        }

        /**
         * @param frontendEndpoints Frontend endpoints available to routing rules.
         * 
         * @return builder
         * 
         */
        public Builder frontendEndpoints(FrontendEndpointArgs... frontendEndpoints) {
            return frontendEndpoints(List.of(frontendEndpoints));
        }

        /**
         * @param healthProbeSettings Health probe settings associated with this Front Door instance.
         * 
         * @return builder
         * 
         */
        public Builder healthProbeSettings(@Nullable Output> healthProbeSettings) {
            $.healthProbeSettings = healthProbeSettings;
            return this;
        }

        /**
         * @param healthProbeSettings Health probe settings associated with this Front Door instance.
         * 
         * @return builder
         * 
         */
        public Builder healthProbeSettings(List healthProbeSettings) {
            return healthProbeSettings(Output.of(healthProbeSettings));
        }

        /**
         * @param healthProbeSettings Health probe settings associated with this Front Door instance.
         * 
         * @return builder
         * 
         */
        public Builder healthProbeSettings(HealthProbeSettingsModelArgs... healthProbeSettings) {
            return healthProbeSettings(List.of(healthProbeSettings));
        }

        /**
         * @param loadBalancingSettings Load balancing settings associated with this Front Door instance.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingSettings(@Nullable Output> loadBalancingSettings) {
            $.loadBalancingSettings = loadBalancingSettings;
            return this;
        }

        /**
         * @param loadBalancingSettings Load balancing settings associated with this Front Door instance.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingSettings(List loadBalancingSettings) {
            return loadBalancingSettings(Output.of(loadBalancingSettings));
        }

        /**
         * @param loadBalancingSettings Load balancing settings associated with this Front Door instance.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingSettings(LoadBalancingSettingsModelArgs... loadBalancingSettings) {
            return loadBalancingSettings(List.of(loadBalancingSettings));
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param resourceGroupName Name of the Resource group within the Azure subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Name of the Resource group within the Azure subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param routingRules Routing rules associated with this Front Door.
         * 
         * @return builder
         * 
         */
        public Builder routingRules(@Nullable Output> routingRules) {
            $.routingRules = routingRules;
            return this;
        }

        /**
         * @param routingRules Routing rules associated with this Front Door.
         * 
         * @return builder
         * 
         */
        public Builder routingRules(List routingRules) {
            return routingRules(Output.of(routingRules));
        }

        /**
         * @param routingRules Routing rules associated with this Front Door.
         * 
         * @return builder
         * 
         */
        public Builder routingRules(RoutingRuleArgs... routingRules) {
            return routingRules(List.of(routingRules));
        }

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

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy