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

com.pulumi.azurenative.cloudngfw.FirewallArgs 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.cloudngfw;

import com.pulumi.azurenative.cloudngfw.enums.BooleanEnum;
import com.pulumi.azurenative.cloudngfw.inputs.AzureResourceManagerManagedIdentityPropertiesArgs;
import com.pulumi.azurenative.cloudngfw.inputs.DNSSettingsArgs;
import com.pulumi.azurenative.cloudngfw.inputs.FrontendSettingArgs;
import com.pulumi.azurenative.cloudngfw.inputs.MarketplaceDetailsArgs;
import com.pulumi.azurenative.cloudngfw.inputs.NetworkProfileArgs;
import com.pulumi.azurenative.cloudngfw.inputs.PanoramaConfigArgs;
import com.pulumi.azurenative.cloudngfw.inputs.PlanDataArgs;
import com.pulumi.azurenative.cloudngfw.inputs.RulestackDetailsArgs;
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 FirewallArgs extends com.pulumi.resources.ResourceArgs {

    public static final FirewallArgs Empty = new FirewallArgs();

    /**
     * Associated Rulestack
     * 
     */
    @Import(name="associatedRulestack")
    private @Nullable Output associatedRulestack;

    /**
     * @return Associated Rulestack
     * 
     */
    public Optional> associatedRulestack() {
        return Optional.ofNullable(this.associatedRulestack);
    }

    /**
     * DNS settings for Firewall
     * 
     */
    @Import(name="dnsSettings", required=true)
    private Output dnsSettings;

    /**
     * @return DNS settings for Firewall
     * 
     */
    public Output dnsSettings() {
        return this.dnsSettings;
    }

    /**
     * Firewall resource name
     * 
     */
    @Import(name="firewallName")
    private @Nullable Output firewallName;

    /**
     * @return Firewall resource name
     * 
     */
    public Optional> firewallName() {
        return Optional.ofNullable(this.firewallName);
    }

    /**
     * Frontend settings for Firewall
     * 
     */
    @Import(name="frontEndSettings")
    private @Nullable Output> frontEndSettings;

    /**
     * @return Frontend settings for Firewall
     * 
     */
    public Optional>> frontEndSettings() {
        return Optional.ofNullable(this.frontEndSettings);
    }

    /**
     * The managed service identities assigned to this resource.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The managed service identities assigned to this resource.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Panorama Managed: Default is False. Default will be CloudSec managed
     * 
     */
    @Import(name="isPanoramaManaged")
    private @Nullable Output> isPanoramaManaged;

    /**
     * @return Panorama Managed: Default is False. Default will be CloudSec managed
     * 
     */
    public Optional>> isPanoramaManaged() {
        return Optional.ofNullable(this.isPanoramaManaged);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Marketplace details
     * 
     */
    @Import(name="marketplaceDetails", required=true)
    private Output marketplaceDetails;

    /**
     * @return Marketplace details
     * 
     */
    public Output marketplaceDetails() {
        return this.marketplaceDetails;
    }

    /**
     * Network settings
     * 
     */
    @Import(name="networkProfile", required=true)
    private Output networkProfile;

    /**
     * @return Network settings
     * 
     */
    public Output networkProfile() {
        return this.networkProfile;
    }

    /**
     * panEtag info
     * 
     */
    @Import(name="panEtag")
    private @Nullable Output panEtag;

    /**
     * @return panEtag info
     * 
     */
    public Optional> panEtag() {
        return Optional.ofNullable(this.panEtag);
    }

    /**
     * Panorama Configuration
     * 
     */
    @Import(name="panoramaConfig")
    private @Nullable Output panoramaConfig;

    /**
     * @return Panorama Configuration
     * 
     */
    public Optional> panoramaConfig() {
        return Optional.ofNullable(this.panoramaConfig);
    }

    /**
     * Billing plan information.
     * 
     */
    @Import(name="planData", required=true)
    private Output planData;

    /**
     * @return Billing plan information.
     * 
     */
    public Output planData() {
        return this.planData;
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

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

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

    private FirewallArgs() {}

    private FirewallArgs(FirewallArgs $) {
        this.associatedRulestack = $.associatedRulestack;
        this.dnsSettings = $.dnsSettings;
        this.firewallName = $.firewallName;
        this.frontEndSettings = $.frontEndSettings;
        this.identity = $.identity;
        this.isPanoramaManaged = $.isPanoramaManaged;
        this.location = $.location;
        this.marketplaceDetails = $.marketplaceDetails;
        this.networkProfile = $.networkProfile;
        this.panEtag = $.panEtag;
        this.panoramaConfig = $.panoramaConfig;
        this.planData = $.planData;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private FirewallArgs $;

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

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

        /**
         * @param associatedRulestack Associated Rulestack
         * 
         * @return builder
         * 
         */
        public Builder associatedRulestack(@Nullable Output associatedRulestack) {
            $.associatedRulestack = associatedRulestack;
            return this;
        }

        /**
         * @param associatedRulestack Associated Rulestack
         * 
         * @return builder
         * 
         */
        public Builder associatedRulestack(RulestackDetailsArgs associatedRulestack) {
            return associatedRulestack(Output.of(associatedRulestack));
        }

        /**
         * @param dnsSettings DNS settings for Firewall
         * 
         * @return builder
         * 
         */
        public Builder dnsSettings(Output dnsSettings) {
            $.dnsSettings = dnsSettings;
            return this;
        }

        /**
         * @param dnsSettings DNS settings for Firewall
         * 
         * @return builder
         * 
         */
        public Builder dnsSettings(DNSSettingsArgs dnsSettings) {
            return dnsSettings(Output.of(dnsSettings));
        }

        /**
         * @param firewallName Firewall resource name
         * 
         * @return builder
         * 
         */
        public Builder firewallName(@Nullable Output firewallName) {
            $.firewallName = firewallName;
            return this;
        }

        /**
         * @param firewallName Firewall resource name
         * 
         * @return builder
         * 
         */
        public Builder firewallName(String firewallName) {
            return firewallName(Output.of(firewallName));
        }

        /**
         * @param frontEndSettings Frontend settings for Firewall
         * 
         * @return builder
         * 
         */
        public Builder frontEndSettings(@Nullable Output> frontEndSettings) {
            $.frontEndSettings = frontEndSettings;
            return this;
        }

        /**
         * @param frontEndSettings Frontend settings for Firewall
         * 
         * @return builder
         * 
         */
        public Builder frontEndSettings(List frontEndSettings) {
            return frontEndSettings(Output.of(frontEndSettings));
        }

        /**
         * @param frontEndSettings Frontend settings for Firewall
         * 
         * @return builder
         * 
         */
        public Builder frontEndSettings(FrontendSettingArgs... frontEndSettings) {
            return frontEndSettings(List.of(frontEndSettings));
        }

        /**
         * @param identity The managed service identities assigned to this resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The managed service identities assigned to this resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(AzureResourceManagerManagedIdentityPropertiesArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param isPanoramaManaged Panorama Managed: Default is False. Default will be CloudSec managed
         * 
         * @return builder
         * 
         */
        public Builder isPanoramaManaged(@Nullable Output> isPanoramaManaged) {
            $.isPanoramaManaged = isPanoramaManaged;
            return this;
        }

        /**
         * @param isPanoramaManaged Panorama Managed: Default is False. Default will be CloudSec managed
         * 
         * @return builder
         * 
         */
        public Builder isPanoramaManaged(Either isPanoramaManaged) {
            return isPanoramaManaged(Output.of(isPanoramaManaged));
        }

        /**
         * @param isPanoramaManaged Panorama Managed: Default is False. Default will be CloudSec managed
         * 
         * @return builder
         * 
         */
        public Builder isPanoramaManaged(String isPanoramaManaged) {
            return isPanoramaManaged(Either.ofLeft(isPanoramaManaged));
        }

        /**
         * @param isPanoramaManaged Panorama Managed: Default is False. Default will be CloudSec managed
         * 
         * @return builder
         * 
         */
        public Builder isPanoramaManaged(BooleanEnum isPanoramaManaged) {
            return isPanoramaManaged(Either.ofRight(isPanoramaManaged));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param marketplaceDetails Marketplace details
         * 
         * @return builder
         * 
         */
        public Builder marketplaceDetails(Output marketplaceDetails) {
            $.marketplaceDetails = marketplaceDetails;
            return this;
        }

        /**
         * @param marketplaceDetails Marketplace details
         * 
         * @return builder
         * 
         */
        public Builder marketplaceDetails(MarketplaceDetailsArgs marketplaceDetails) {
            return marketplaceDetails(Output.of(marketplaceDetails));
        }

        /**
         * @param networkProfile Network settings
         * 
         * @return builder
         * 
         */
        public Builder networkProfile(Output networkProfile) {
            $.networkProfile = networkProfile;
            return this;
        }

        /**
         * @param networkProfile Network settings
         * 
         * @return builder
         * 
         */
        public Builder networkProfile(NetworkProfileArgs networkProfile) {
            return networkProfile(Output.of(networkProfile));
        }

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

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

        /**
         * @param panoramaConfig Panorama Configuration
         * 
         * @return builder
         * 
         */
        public Builder panoramaConfig(@Nullable Output panoramaConfig) {
            $.panoramaConfig = panoramaConfig;
            return this;
        }

        /**
         * @param panoramaConfig Panorama Configuration
         * 
         * @return builder
         * 
         */
        public Builder panoramaConfig(PanoramaConfigArgs panoramaConfig) {
            return panoramaConfig(Output.of(panoramaConfig));
        }

        /**
         * @param planData Billing plan information.
         * 
         * @return builder
         * 
         */
        public Builder planData(Output planData) {
            $.planData = planData;
            return this;
        }

        /**
         * @param planData Billing plan information.
         * 
         * @return builder
         * 
         */
        public Builder planData(PlanDataArgs planData) {
            return planData(Output.of(planData));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @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 FirewallArgs build() {
            if ($.dnsSettings == null) {
                throw new MissingRequiredPropertyException("FirewallArgs", "dnsSettings");
            }
            if ($.marketplaceDetails == null) {
                throw new MissingRequiredPropertyException("FirewallArgs", "marketplaceDetails");
            }
            if ($.networkProfile == null) {
                throw new MissingRequiredPropertyException("FirewallArgs", "networkProfile");
            }
            if ($.planData == null) {
                throw new MissingRequiredPropertyException("FirewallArgs", "planData");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("FirewallArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy