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

com.pulumi.azurenative.network.FirewallPolicyDraftArgs 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.FirewallPolicyThreatIntelWhitelistArgs;
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 FirewallPolicyDraftArgs extends com.pulumi.resources.ResourceArgs {

    public static final FirewallPolicyDraftArgs Empty = new FirewallPolicyDraftArgs();

    /**
     * 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", required=true)
    private Output firewallPolicyName;

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

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

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

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

    private FirewallPolicyDraftArgs() {}

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

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

    public static final class Builder {
        private FirewallPolicyDraftArgs $;

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

        public Builder(FirewallPolicyDraftArgs defaults) {
            $ = new FirewallPolicyDraftArgs(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(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 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 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));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy