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

com.pulumi.azurenative.network.AzureFirewallArgs 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.network;

import com.pulumi.azurenative.network.enums.AzureFirewallThreatIntelMode;
import com.pulumi.azurenative.network.inputs.AzureFirewallApplicationRuleCollectionArgs;
import com.pulumi.azurenative.network.inputs.AzureFirewallIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.AzureFirewallNatRuleCollectionArgs;
import com.pulumi.azurenative.network.inputs.AzureFirewallNetworkRuleCollectionArgs;
import com.pulumi.azurenative.network.inputs.AzureFirewallSkuArgs;
import com.pulumi.azurenative.network.inputs.HubIPAddressesArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
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 AzureFirewallArgs extends com.pulumi.resources.ResourceArgs {

    public static final AzureFirewallArgs Empty = new AzureFirewallArgs();

    /**
     * The additional properties used to further config this azure firewall.
     * 
     */
    @Import(name="additionalProperties")
    private @Nullable Output> additionalProperties;

    /**
     * @return The additional properties used to further config this azure firewall.
     * 
     */
    public Optional>> additionalProperties() {
        return Optional.ofNullable(this.additionalProperties);
    }

    /**
     * Collection of application rule collections used by Azure Firewall.
     * 
     */
    @Import(name="applicationRuleCollections")
    private @Nullable Output> applicationRuleCollections;

    /**
     * @return Collection of application rule collections used by Azure Firewall.
     * 
     */
    public Optional>> applicationRuleCollections() {
        return Optional.ofNullable(this.applicationRuleCollections);
    }

    /**
     * The name of the Azure Firewall.
     * 
     */
    @Import(name="azureFirewallName")
    private @Nullable Output azureFirewallName;

    /**
     * @return The name of the Azure Firewall.
     * 
     */
    public Optional> azureFirewallName() {
        return Optional.ofNullable(this.azureFirewallName);
    }

    /**
     * The firewallPolicy associated with this azure firewall.
     * 
     */
    @Import(name="firewallPolicy")
    private @Nullable Output firewallPolicy;

    /**
     * @return The firewallPolicy associated with this azure firewall.
     * 
     */
    public Optional> firewallPolicy() {
        return Optional.ofNullable(this.firewallPolicy);
    }

    /**
     * IP addresses associated with AzureFirewall.
     * 
     */
    @Import(name="hubIPAddresses")
    private @Nullable Output hubIPAddresses;

    /**
     * @return IP addresses associated with AzureFirewall.
     * 
     */
    public Optional> hubIPAddresses() {
        return Optional.ofNullable(this.hubIPAddresses);
    }

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

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

    /**
     * IP configuration of the Azure Firewall resource.
     * 
     */
    @Import(name="ipConfigurations")
    private @Nullable Output> ipConfigurations;

    /**
     * @return IP configuration of the Azure Firewall resource.
     * 
     */
    public Optional>> ipConfigurations() {
        return Optional.ofNullable(this.ipConfigurations);
    }

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

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

    /**
     * IP configuration of the Azure Firewall used for management traffic.
     * 
     */
    @Import(name="managementIpConfiguration")
    private @Nullable Output managementIpConfiguration;

    /**
     * @return IP configuration of the Azure Firewall used for management traffic.
     * 
     */
    public Optional> managementIpConfiguration() {
        return Optional.ofNullable(this.managementIpConfiguration);
    }

    /**
     * Collection of NAT rule collections used by Azure Firewall.
     * 
     */
    @Import(name="natRuleCollections")
    private @Nullable Output> natRuleCollections;

    /**
     * @return Collection of NAT rule collections used by Azure Firewall.
     * 
     */
    public Optional>> natRuleCollections() {
        return Optional.ofNullable(this.natRuleCollections);
    }

    /**
     * Collection of network rule collections used by Azure Firewall.
     * 
     */
    @Import(name="networkRuleCollections")
    private @Nullable Output> networkRuleCollections;

    /**
     * @return Collection of network rule collections used by Azure Firewall.
     * 
     */
    public Optional>> networkRuleCollections() {
        return Optional.ofNullable(this.networkRuleCollections);
    }

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

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

    /**
     * The Azure Firewall Resource SKU.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return The Azure Firewall Resource SKU.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

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

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

    /**
     * The operation mode for Threat Intelligence.
     * 
     */
    @Import(name="threatIntelMode")
    private @Nullable Output> threatIntelMode;

    /**
     * @return The operation mode for Threat Intelligence.
     * 
     */
    public Optional>> threatIntelMode() {
        return Optional.ofNullable(this.threatIntelMode);
    }

    /**
     * The virtualHub to which the firewall belongs.
     * 
     */
    @Import(name="virtualHub")
    private @Nullable Output virtualHub;

    /**
     * @return The virtualHub to which the firewall belongs.
     * 
     */
    public Optional> virtualHub() {
        return Optional.ofNullable(this.virtualHub);
    }

    /**
     * A list of availability zones denoting where the resource needs to come from.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return A list of availability zones denoting where the resource needs to come from.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private AzureFirewallArgs() {}

    private AzureFirewallArgs(AzureFirewallArgs $) {
        this.additionalProperties = $.additionalProperties;
        this.applicationRuleCollections = $.applicationRuleCollections;
        this.azureFirewallName = $.azureFirewallName;
        this.firewallPolicy = $.firewallPolicy;
        this.hubIPAddresses = $.hubIPAddresses;
        this.id = $.id;
        this.ipConfigurations = $.ipConfigurations;
        this.location = $.location;
        this.managementIpConfiguration = $.managementIpConfiguration;
        this.natRuleCollections = $.natRuleCollections;
        this.networkRuleCollections = $.networkRuleCollections;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
        this.threatIntelMode = $.threatIntelMode;
        this.virtualHub = $.virtualHub;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private AzureFirewallArgs $;

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

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

        /**
         * @param additionalProperties The additional properties used to further config this azure firewall.
         * 
         * @return builder
         * 
         */
        public Builder additionalProperties(@Nullable Output> additionalProperties) {
            $.additionalProperties = additionalProperties;
            return this;
        }

        /**
         * @param additionalProperties The additional properties used to further config this azure firewall.
         * 
         * @return builder
         * 
         */
        public Builder additionalProperties(Map additionalProperties) {
            return additionalProperties(Output.of(additionalProperties));
        }

        /**
         * @param applicationRuleCollections Collection of application rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder applicationRuleCollections(@Nullable Output> applicationRuleCollections) {
            $.applicationRuleCollections = applicationRuleCollections;
            return this;
        }

        /**
         * @param applicationRuleCollections Collection of application rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder applicationRuleCollections(List applicationRuleCollections) {
            return applicationRuleCollections(Output.of(applicationRuleCollections));
        }

        /**
         * @param applicationRuleCollections Collection of application rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder applicationRuleCollections(AzureFirewallApplicationRuleCollectionArgs... applicationRuleCollections) {
            return applicationRuleCollections(List.of(applicationRuleCollections));
        }

        /**
         * @param azureFirewallName The name of the Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder azureFirewallName(@Nullable Output azureFirewallName) {
            $.azureFirewallName = azureFirewallName;
            return this;
        }

        /**
         * @param azureFirewallName The name of the Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder azureFirewallName(String azureFirewallName) {
            return azureFirewallName(Output.of(azureFirewallName));
        }

        /**
         * @param firewallPolicy The firewallPolicy associated with this azure firewall.
         * 
         * @return builder
         * 
         */
        public Builder firewallPolicy(@Nullable Output firewallPolicy) {
            $.firewallPolicy = firewallPolicy;
            return this;
        }

        /**
         * @param firewallPolicy The firewallPolicy associated with this azure firewall.
         * 
         * @return builder
         * 
         */
        public Builder firewallPolicy(SubResourceArgs firewallPolicy) {
            return firewallPolicy(Output.of(firewallPolicy));
        }

        /**
         * @param hubIPAddresses IP addresses associated with AzureFirewall.
         * 
         * @return builder
         * 
         */
        public Builder hubIPAddresses(@Nullable Output hubIPAddresses) {
            $.hubIPAddresses = hubIPAddresses;
            return this;
        }

        /**
         * @param hubIPAddresses IP addresses associated with AzureFirewall.
         * 
         * @return builder
         * 
         */
        public Builder hubIPAddresses(HubIPAddressesArgs hubIPAddresses) {
            return hubIPAddresses(Output.of(hubIPAddresses));
        }

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

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

        /**
         * @param ipConfigurations IP configuration of the Azure Firewall resource.
         * 
         * @return builder
         * 
         */
        public Builder ipConfigurations(@Nullable Output> ipConfigurations) {
            $.ipConfigurations = ipConfigurations;
            return this;
        }

        /**
         * @param ipConfigurations IP configuration of the Azure Firewall resource.
         * 
         * @return builder
         * 
         */
        public Builder ipConfigurations(List ipConfigurations) {
            return ipConfigurations(Output.of(ipConfigurations));
        }

        /**
         * @param ipConfigurations IP configuration of the Azure Firewall resource.
         * 
         * @return builder
         * 
         */
        public Builder ipConfigurations(AzureFirewallIPConfigurationArgs... ipConfigurations) {
            return ipConfigurations(List.of(ipConfigurations));
        }

        /**
         * @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 managementIpConfiguration IP configuration of the Azure Firewall used for management traffic.
         * 
         * @return builder
         * 
         */
        public Builder managementIpConfiguration(@Nullable Output managementIpConfiguration) {
            $.managementIpConfiguration = managementIpConfiguration;
            return this;
        }

        /**
         * @param managementIpConfiguration IP configuration of the Azure Firewall used for management traffic.
         * 
         * @return builder
         * 
         */
        public Builder managementIpConfiguration(AzureFirewallIPConfigurationArgs managementIpConfiguration) {
            return managementIpConfiguration(Output.of(managementIpConfiguration));
        }

        /**
         * @param natRuleCollections Collection of NAT rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder natRuleCollections(@Nullable Output> natRuleCollections) {
            $.natRuleCollections = natRuleCollections;
            return this;
        }

        /**
         * @param natRuleCollections Collection of NAT rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder natRuleCollections(List natRuleCollections) {
            return natRuleCollections(Output.of(natRuleCollections));
        }

        /**
         * @param natRuleCollections Collection of NAT rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder natRuleCollections(AzureFirewallNatRuleCollectionArgs... natRuleCollections) {
            return natRuleCollections(List.of(natRuleCollections));
        }

        /**
         * @param networkRuleCollections Collection of network rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder networkRuleCollections(@Nullable Output> networkRuleCollections) {
            $.networkRuleCollections = networkRuleCollections;
            return this;
        }

        /**
         * @param networkRuleCollections Collection of network rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder networkRuleCollections(List networkRuleCollections) {
            return networkRuleCollections(Output.of(networkRuleCollections));
        }

        /**
         * @param networkRuleCollections Collection of network rule collections used by Azure Firewall.
         * 
         * @return builder
         * 
         */
        public Builder networkRuleCollections(AzureFirewallNetworkRuleCollectionArgs... networkRuleCollections) {
            return networkRuleCollections(List.of(networkRuleCollections));
        }

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

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

        /**
         * @param sku The Azure Firewall Resource SKU.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The Azure Firewall Resource SKU.
         * 
         * @return builder
         * 
         */
        public Builder sku(AzureFirewallSkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @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));
        }

        /**
         * @param threatIntelMode The operation mode for Threat Intelligence.
         * 
         * @return builder
         * 
         */
        public Builder threatIntelMode(@Nullable Output> threatIntelMode) {
            $.threatIntelMode = threatIntelMode;
            return this;
        }

        /**
         * @param threatIntelMode The operation mode for Threat Intelligence.
         * 
         * @return builder
         * 
         */
        public Builder threatIntelMode(Either threatIntelMode) {
            return threatIntelMode(Output.of(threatIntelMode));
        }

        /**
         * @param threatIntelMode The operation mode for Threat Intelligence.
         * 
         * @return builder
         * 
         */
        public Builder threatIntelMode(String threatIntelMode) {
            return threatIntelMode(Either.ofLeft(threatIntelMode));
        }

        /**
         * @param threatIntelMode The operation mode for Threat Intelligence.
         * 
         * @return builder
         * 
         */
        public Builder threatIntelMode(AzureFirewallThreatIntelMode threatIntelMode) {
            return threatIntelMode(Either.ofRight(threatIntelMode));
        }

        /**
         * @param virtualHub The virtualHub to which the firewall belongs.
         * 
         * @return builder
         * 
         */
        public Builder virtualHub(@Nullable Output virtualHub) {
            $.virtualHub = virtualHub;
            return this;
        }

        /**
         * @param virtualHub The virtualHub to which the firewall belongs.
         * 
         * @return builder
         * 
         */
        public Builder virtualHub(SubResourceArgs virtualHub) {
            return virtualHub(Output.of(virtualHub));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy