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

com.pulumi.azurenative.eventhub.NamespaceNetworkRuleSetArgs Maven / Gradle / Ivy

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

import com.pulumi.azurenative.eventhub.enums.DefaultAction;
import com.pulumi.azurenative.eventhub.enums.PublicNetworkAccessFlag;
import com.pulumi.azurenative.eventhub.inputs.NWRuleSetIpRulesArgs;
import com.pulumi.azurenative.eventhub.inputs.NWRuleSetVirtualNetworkRulesArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final NamespaceNetworkRuleSetArgs Empty = new NamespaceNetworkRuleSetArgs();

    /**
     * Default Action for Network Rule Set
     * 
     */
    @Import(name="defaultAction")
    private @Nullable Output> defaultAction;

    /**
     * @return Default Action for Network Rule Set
     * 
     */
    public Optional>> defaultAction() {
        return Optional.ofNullable(this.defaultAction);
    }

    /**
     * List of IpRules
     * 
     */
    @Import(name="ipRules")
    private @Nullable Output> ipRules;

    /**
     * @return List of IpRules
     * 
     */
    public Optional>> ipRules() {
        return Optional.ofNullable(this.ipRules);
    }

    /**
     * The Namespace name
     * 
     */
    @Import(name="namespaceName", required=true)
    private Output namespaceName;

    /**
     * @return The Namespace name
     * 
     */
    public Output namespaceName() {
        return this.namespaceName;
    }

    /**
     * This determines if traffic is allowed over public network. By default it is enabled. If value is SecuredByPerimeter then Inbound and Outbound communication is controlled by the network security perimeter and profile's access rules.
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output> publicNetworkAccess;

    /**
     * @return This determines if traffic is allowed over public network. By default it is enabled. If value is SecuredByPerimeter then Inbound and Outbound communication is controlled by the network security perimeter and profile's access rules.
     * 
     */
    public Optional>> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

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

    /**
     * Value that indicates whether Trusted Service Access is Enabled or not.
     * 
     */
    @Import(name="trustedServiceAccessEnabled")
    private @Nullable Output trustedServiceAccessEnabled;

    /**
     * @return Value that indicates whether Trusted Service Access is Enabled or not.
     * 
     */
    public Optional> trustedServiceAccessEnabled() {
        return Optional.ofNullable(this.trustedServiceAccessEnabled);
    }

    /**
     * List VirtualNetwork Rules
     * 
     */
    @Import(name="virtualNetworkRules")
    private @Nullable Output> virtualNetworkRules;

    /**
     * @return List VirtualNetwork Rules
     * 
     */
    public Optional>> virtualNetworkRules() {
        return Optional.ofNullable(this.virtualNetworkRules);
    }

    private NamespaceNetworkRuleSetArgs() {}

    private NamespaceNetworkRuleSetArgs(NamespaceNetworkRuleSetArgs $) {
        this.defaultAction = $.defaultAction;
        this.ipRules = $.ipRules;
        this.namespaceName = $.namespaceName;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.resourceGroupName = $.resourceGroupName;
        this.trustedServiceAccessEnabled = $.trustedServiceAccessEnabled;
        this.virtualNetworkRules = $.virtualNetworkRules;
    }

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

    public static final class Builder {
        private NamespaceNetworkRuleSetArgs $;

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

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

        /**
         * @param defaultAction Default Action for Network Rule Set
         * 
         * @return builder
         * 
         */
        public Builder defaultAction(@Nullable Output> defaultAction) {
            $.defaultAction = defaultAction;
            return this;
        }

        /**
         * @param defaultAction Default Action for Network Rule Set
         * 
         * @return builder
         * 
         */
        public Builder defaultAction(Either defaultAction) {
            return defaultAction(Output.of(defaultAction));
        }

        /**
         * @param defaultAction Default Action for Network Rule Set
         * 
         * @return builder
         * 
         */
        public Builder defaultAction(String defaultAction) {
            return defaultAction(Either.ofLeft(defaultAction));
        }

        /**
         * @param defaultAction Default Action for Network Rule Set
         * 
         * @return builder
         * 
         */
        public Builder defaultAction(DefaultAction defaultAction) {
            return defaultAction(Either.ofRight(defaultAction));
        }

        /**
         * @param ipRules List of IpRules
         * 
         * @return builder
         * 
         */
        public Builder ipRules(@Nullable Output> ipRules) {
            $.ipRules = ipRules;
            return this;
        }

        /**
         * @param ipRules List of IpRules
         * 
         * @return builder
         * 
         */
        public Builder ipRules(List ipRules) {
            return ipRules(Output.of(ipRules));
        }

        /**
         * @param ipRules List of IpRules
         * 
         * @return builder
         * 
         */
        public Builder ipRules(NWRuleSetIpRulesArgs... ipRules) {
            return ipRules(List.of(ipRules));
        }

        /**
         * @param namespaceName The Namespace name
         * 
         * @return builder
         * 
         */
        public Builder namespaceName(Output namespaceName) {
            $.namespaceName = namespaceName;
            return this;
        }

        /**
         * @param namespaceName The Namespace name
         * 
         * @return builder
         * 
         */
        public Builder namespaceName(String namespaceName) {
            return namespaceName(Output.of(namespaceName));
        }

        /**
         * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled. If value is SecuredByPerimeter then Inbound and Outbound communication is controlled by the network security perimeter and profile's access rules.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output> publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled. If value is SecuredByPerimeter then Inbound and Outbound communication is controlled by the network security perimeter and profile's access rules.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(Either publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled. If value is SecuredByPerimeter then Inbound and Outbound communication is controlled by the network security perimeter and profile's access rules.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(String publicNetworkAccess) {
            return publicNetworkAccess(Either.ofLeft(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled. If value is SecuredByPerimeter then Inbound and Outbound communication is controlled by the network security perimeter and profile's access rules.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccessFlag publicNetworkAccess) {
            return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
        }

        /**
         * @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 trustedServiceAccessEnabled Value that indicates whether Trusted Service Access is Enabled or not.
         * 
         * @return builder
         * 
         */
        public Builder trustedServiceAccessEnabled(@Nullable Output trustedServiceAccessEnabled) {
            $.trustedServiceAccessEnabled = trustedServiceAccessEnabled;
            return this;
        }

        /**
         * @param trustedServiceAccessEnabled Value that indicates whether Trusted Service Access is Enabled or not.
         * 
         * @return builder
         * 
         */
        public Builder trustedServiceAccessEnabled(Boolean trustedServiceAccessEnabled) {
            return trustedServiceAccessEnabled(Output.of(trustedServiceAccessEnabled));
        }

        /**
         * @param virtualNetworkRules List VirtualNetwork Rules
         * 
         * @return builder
         * 
         */
        public Builder virtualNetworkRules(@Nullable Output> virtualNetworkRules) {
            $.virtualNetworkRules = virtualNetworkRules;
            return this;
        }

        /**
         * @param virtualNetworkRules List VirtualNetwork Rules
         * 
         * @return builder
         * 
         */
        public Builder virtualNetworkRules(List virtualNetworkRules) {
            return virtualNetworkRules(Output.of(virtualNetworkRules));
        }

        /**
         * @param virtualNetworkRules List VirtualNetwork Rules
         * 
         * @return builder
         * 
         */
        public Builder virtualNetworkRules(NWRuleSetVirtualNetworkRulesArgs... virtualNetworkRules) {
            return virtualNetworkRules(List.of(virtualNetworkRules));
        }

        public NamespaceNetworkRuleSetArgs build() {
            if ($.namespaceName == null) {
                throw new MissingRequiredPropertyException("NamespaceNetworkRuleSetArgs", "namespaceName");
            }
            $.publicNetworkAccess = Codegen.stringProp("publicNetworkAccess").left(PublicNetworkAccessFlag.class).output().arg($.publicNetworkAccess).def("Enabled").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("NamespaceNetworkRuleSetArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy