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

com.pulumi.azurenative.network.FirewallPolicyArgs 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.AzureFirewallThreatIntelMode;
import com.pulumi.azurenative.network.inputs.DnsSettingsArgs;
import com.pulumi.azurenative.network.inputs.ExplicitProxyArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicyInsightsArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicyIntrusionDetectionArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicySNATArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicySQLArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicySkuArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicyThreatIntelWhitelistArgs;
import com.pulumi.azurenative.network.inputs.FirewallPolicyTransportSecurityArgs;
import com.pulumi.azurenative.network.inputs.ManagedServiceIdentityArgs;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class FirewallPolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final FirewallPolicyArgs Empty = new FirewallPolicyArgs();

    /**
     * The parent firewall policy from which rules are inherited.
     * 
     */
    @Import(name="basePolicy")
    private @Nullable Output basePolicy;

    /**
     * @return The parent firewall policy from which rules are inherited.
     * 
     */
    public Optional> basePolicy() {
        return Optional.ofNullable(this.basePolicy);
    }

    /**
     * DNS Proxy Settings definition.
     * 
     */
    @Import(name="dnsSettings")
    private @Nullable Output dnsSettings;

    /**
     * @return DNS Proxy Settings definition.
     * 
     */
    public Optional> dnsSettings() {
        return Optional.ofNullable(this.dnsSettings);
    }

    /**
     * Explicit Proxy Settings definition.
     * 
     */
    @Import(name="explicitProxy")
    private @Nullable Output explicitProxy;

    /**
     * @return Explicit Proxy Settings definition.
     * 
     */
    public Optional> explicitProxy() {
        return Optional.ofNullable(this.explicitProxy);
    }

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

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

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

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

    /**
     * The identity of the firewall policy.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The identity of the firewall policy.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Insights on Firewall Policy.
     * 
     */
    @Import(name="insights")
    private @Nullable Output insights;

    /**
     * @return Insights on Firewall Policy.
     * 
     */
    public Optional> insights() {
        return Optional.ofNullable(this.insights);
    }

    /**
     * The configuration for Intrusion detection.
     * 
     */
    @Import(name="intrusionDetection")
    private @Nullable Output intrusionDetection;

    /**
     * @return The configuration for Intrusion detection.
     * 
     */
    public Optional> intrusionDetection() {
        return Optional.ofNullable(this.intrusionDetection);
    }

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

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

    /**
     * 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 Firewall Policy SKU.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

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

    /**
     * The private IP addresses/IP ranges to which traffic will not be SNAT.
     * 
     */
    @Import(name="snat")
    private @Nullable Output snat;

    /**
     * @return The private IP addresses/IP ranges to which traffic will not be SNAT.
     * 
     */
    public Optional> snat() {
        return Optional.ofNullable(this.snat);
    }

    /**
     * SQL Settings definition.
     * 
     */
    @Import(name="sql")
    private @Nullable Output sql;

    /**
     * @return SQL Settings definition.
     * 
     */
    public Optional> sql() {
        return Optional.ofNullable(this.sql);
    }

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

    /**
     * ThreatIntel Whitelist for Firewall Policy.
     * 
     */
    @Import(name="threatIntelWhitelist")
    private @Nullable Output threatIntelWhitelist;

    /**
     * @return ThreatIntel Whitelist for Firewall Policy.
     * 
     */
    public Optional> threatIntelWhitelist() {
        return Optional.ofNullable(this.threatIntelWhitelist);
    }

    /**
     * TLS Configuration definition.
     * 
     */
    @Import(name="transportSecurity")
    private @Nullable Output transportSecurity;

    /**
     * @return TLS Configuration definition.
     * 
     */
    public Optional> transportSecurity() {
        return Optional.ofNullable(this.transportSecurity);
    }

    private FirewallPolicyArgs() {}

    private FirewallPolicyArgs(FirewallPolicyArgs $) {
        this.basePolicy = $.basePolicy;
        this.dnsSettings = $.dnsSettings;
        this.explicitProxy = $.explicitProxy;
        this.firewallPolicyName = $.firewallPolicyName;
        this.id = $.id;
        this.identity = $.identity;
        this.insights = $.insights;
        this.intrusionDetection = $.intrusionDetection;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.snat = $.snat;
        this.sql = $.sql;
        this.tags = $.tags;
        this.threatIntelMode = $.threatIntelMode;
        this.threatIntelWhitelist = $.threatIntelWhitelist;
        this.transportSecurity = $.transportSecurity;
    }

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

    public static final class Builder {
        private FirewallPolicyArgs $;

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

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

        /**
         * @param basePolicy The parent firewall policy from which rules are inherited.
         * 
         * @return builder
         * 
         */
        public Builder basePolicy(@Nullable Output basePolicy) {
            $.basePolicy = basePolicy;
            return this;
        }

        /**
         * @param basePolicy The parent firewall policy from which rules are inherited.
         * 
         * @return builder
         * 
         */
        public Builder basePolicy(SubResourceArgs basePolicy) {
            return basePolicy(Output.of(basePolicy));
        }

        /**
         * @param dnsSettings DNS Proxy Settings definition.
         * 
         * @return builder
         * 
         */
        public Builder dnsSettings(@Nullable Output dnsSettings) {
            $.dnsSettings = dnsSettings;
            return this;
        }

        /**
         * @param dnsSettings DNS Proxy Settings definition.
         * 
         * @return builder
         * 
         */
        public Builder dnsSettings(DnsSettingsArgs dnsSettings) {
            return dnsSettings(Output.of(dnsSettings));
        }

        /**
         * @param explicitProxy Explicit Proxy Settings definition.
         * 
         * @return builder
         * 
         */
        public Builder explicitProxy(@Nullable Output explicitProxy) {
            $.explicitProxy = explicitProxy;
            return this;
        }

        /**
         * @param explicitProxy Explicit Proxy Settings definition.
         * 
         * @return builder
         * 
         */
        public Builder explicitProxy(ExplicitProxyArgs explicitProxy) {
            return explicitProxy(Output.of(explicitProxy));
        }

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

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

        /**
         * @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 identity The identity of the firewall policy.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The identity of the firewall policy.
         * 
         * @return builder
         * 
         */
        public Builder identity(ManagedServiceIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param insights Insights on Firewall Policy.
         * 
         * @return builder
         * 
         */
        public Builder insights(@Nullable Output insights) {
            $.insights = insights;
            return this;
        }

        /**
         * @param insights Insights on Firewall Policy.
         * 
         * @return builder
         * 
         */
        public Builder insights(FirewallPolicyInsightsArgs insights) {
            return insights(Output.of(insights));
        }

        /**
         * @param intrusionDetection The configuration for Intrusion detection.
         * 
         * @return builder
         * 
         */
        public Builder intrusionDetection(@Nullable Output intrusionDetection) {
            $.intrusionDetection = intrusionDetection;
            return this;
        }

        /**
         * @param intrusionDetection The configuration for Intrusion detection.
         * 
         * @return builder
         * 
         */
        public Builder intrusionDetection(FirewallPolicyIntrusionDetectionArgs intrusionDetection) {
            return intrusionDetection(Output.of(intrusionDetection));
        }

        /**
         * @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 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 Firewall Policy SKU.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

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

        /**
         * @param snat The private IP addresses/IP ranges to which traffic will not be SNAT.
         * 
         * @return builder
         * 
         */
        public Builder snat(@Nullable Output snat) {
            $.snat = snat;
            return this;
        }

        /**
         * @param snat The private IP addresses/IP ranges to which traffic will not be SNAT.
         * 
         * @return builder
         * 
         */
        public Builder snat(FirewallPolicySNATArgs snat) {
            return snat(Output.of(snat));
        }

        /**
         * @param sql SQL Settings definition.
         * 
         * @return builder
         * 
         */
        public Builder sql(@Nullable Output sql) {
            $.sql = sql;
            return this;
        }

        /**
         * @param sql SQL Settings definition.
         * 
         * @return builder
         * 
         */
        public Builder sql(FirewallPolicySQLArgs sql) {
            return sql(Output.of(sql));
        }

        /**
         * @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 threatIntelWhitelist ThreatIntel Whitelist for Firewall Policy.
         * 
         * @return builder
         * 
         */
        public Builder threatIntelWhitelist(@Nullable Output threatIntelWhitelist) {
            $.threatIntelWhitelist = threatIntelWhitelist;
            return this;
        }

        /**
         * @param threatIntelWhitelist ThreatIntel Whitelist for Firewall Policy.
         * 
         * @return builder
         * 
         */
        public Builder threatIntelWhitelist(FirewallPolicyThreatIntelWhitelistArgs threatIntelWhitelist) {
            return threatIntelWhitelist(Output.of(threatIntelWhitelist));
        }

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

        /**
         * @param transportSecurity TLS Configuration definition.
         * 
         * @return builder
         * 
         */
        public Builder transportSecurity(FirewallPolicyTransportSecurityArgs transportSecurity) {
            return transportSecurity(Output.of(transportSecurity));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy