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

com.pulumi.azurenative.eventgrid.PartnerNamespaceArgs 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.eventgrid;

import com.pulumi.azurenative.eventgrid.enums.PartnerTopicRoutingMode;
import com.pulumi.azurenative.eventgrid.enums.PublicNetworkAccess;
import com.pulumi.azurenative.eventgrid.inputs.InboundIpRuleArgs;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final PartnerNamespaceArgs Empty = new PartnerNamespaceArgs();

    /**
     * This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.
     * 
     */
    @Import(name="disableLocalAuth")
    private @Nullable Output disableLocalAuth;

    /**
     * @return This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.
     * 
     */
    public Optional> disableLocalAuth() {
        return Optional.ofNullable(this.disableLocalAuth);
    }

    /**
     * This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
     * 
     */
    @Import(name="inboundIpRules")
    private @Nullable Output> inboundIpRules;

    /**
     * @return This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
     * 
     */
    public Optional>> inboundIpRules() {
        return Optional.ofNullable(this.inboundIpRules);
    }

    /**
     * Location of the resource.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Location of the resource.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Name of the partner namespace.
     * 
     */
    @Import(name="partnerNamespaceName")
    private @Nullable Output partnerNamespaceName;

    /**
     * @return Name of the partner namespace.
     * 
     */
    public Optional> partnerNamespaceName() {
        return Optional.ofNullable(this.partnerNamespaceName);
    }

    /**
     * The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format:
     * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.
     * 
     */
    @Import(name="partnerRegistrationFullyQualifiedId")
    private @Nullable Output partnerRegistrationFullyQualifiedId;

    /**
     * @return The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format:
     * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.
     * 
     */
    public Optional> partnerRegistrationFullyQualifiedId() {
        return Optional.ofNullable(this.partnerRegistrationFullyQualifiedId);
    }

    /**
     * This determines if events published to this partner namespace should use the source attribute in the event payload
     * or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.
     * 
     */
    @Import(name="partnerTopicRoutingMode")
    private @Nullable Output> partnerTopicRoutingMode;

    /**
     * @return This determines if events published to this partner namespace should use the source attribute in the event payload
     * or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.
     * 
     */
    public Optional>> partnerTopicRoutingMode() {
        return Optional.ofNullable(this.partnerTopicRoutingMode);
    }

    /**
     * This determines if traffic is allowed over public network. By default it is enabled.
     * You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.PartnerNamespaceProperties.InboundIpRules" />
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output> publicNetworkAccess;

    /**
     * @return This determines if traffic is allowed over public network. By default it is enabled.
     * You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.PartnerNamespaceProperties.InboundIpRules" />
     * 
     */
    public Optional>> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

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

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

    /**
     * Tags of the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Tags of the resource.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private PartnerNamespaceArgs() {}

    private PartnerNamespaceArgs(PartnerNamespaceArgs $) {
        this.disableLocalAuth = $.disableLocalAuth;
        this.inboundIpRules = $.inboundIpRules;
        this.location = $.location;
        this.partnerNamespaceName = $.partnerNamespaceName;
        this.partnerRegistrationFullyQualifiedId = $.partnerRegistrationFullyQualifiedId;
        this.partnerTopicRoutingMode = $.partnerTopicRoutingMode;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private PartnerNamespaceArgs $;

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

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

        /**
         * @param disableLocalAuth This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.
         * 
         * @return builder
         * 
         */
        public Builder disableLocalAuth(@Nullable Output disableLocalAuth) {
            $.disableLocalAuth = disableLocalAuth;
            return this;
        }

        /**
         * @param disableLocalAuth This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.
         * 
         * @return builder
         * 
         */
        public Builder disableLocalAuth(Boolean disableLocalAuth) {
            return disableLocalAuth(Output.of(disableLocalAuth));
        }

        /**
         * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
         * 
         * @return builder
         * 
         */
        public Builder inboundIpRules(@Nullable Output> inboundIpRules) {
            $.inboundIpRules = inboundIpRules;
            return this;
        }

        /**
         * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
         * 
         * @return builder
         * 
         */
        public Builder inboundIpRules(List inboundIpRules) {
            return inboundIpRules(Output.of(inboundIpRules));
        }

        /**
         * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
         * 
         * @return builder
         * 
         */
        public Builder inboundIpRules(InboundIpRuleArgs... inboundIpRules) {
            return inboundIpRules(List.of(inboundIpRules));
        }

        /**
         * @param location Location of the resource.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Location of the resource.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param partnerNamespaceName Name of the partner namespace.
         * 
         * @return builder
         * 
         */
        public Builder partnerNamespaceName(@Nullable Output partnerNamespaceName) {
            $.partnerNamespaceName = partnerNamespaceName;
            return this;
        }

        /**
         * @param partnerNamespaceName Name of the partner namespace.
         * 
         * @return builder
         * 
         */
        public Builder partnerNamespaceName(String partnerNamespaceName) {
            return partnerNamespaceName(Output.of(partnerNamespaceName));
        }

        /**
         * @param partnerRegistrationFullyQualifiedId The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format:
         * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.
         * 
         * @return builder
         * 
         */
        public Builder partnerRegistrationFullyQualifiedId(@Nullable Output partnerRegistrationFullyQualifiedId) {
            $.partnerRegistrationFullyQualifiedId = partnerRegistrationFullyQualifiedId;
            return this;
        }

        /**
         * @param partnerRegistrationFullyQualifiedId The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format:
         * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.
         * 
         * @return builder
         * 
         */
        public Builder partnerRegistrationFullyQualifiedId(String partnerRegistrationFullyQualifiedId) {
            return partnerRegistrationFullyQualifiedId(Output.of(partnerRegistrationFullyQualifiedId));
        }

        /**
         * @param partnerTopicRoutingMode This determines if events published to this partner namespace should use the source attribute in the event payload
         * or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.
         * 
         * @return builder
         * 
         */
        public Builder partnerTopicRoutingMode(@Nullable Output> partnerTopicRoutingMode) {
            $.partnerTopicRoutingMode = partnerTopicRoutingMode;
            return this;
        }

        /**
         * @param partnerTopicRoutingMode This determines if events published to this partner namespace should use the source attribute in the event payload
         * or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.
         * 
         * @return builder
         * 
         */
        public Builder partnerTopicRoutingMode(Either partnerTopicRoutingMode) {
            return partnerTopicRoutingMode(Output.of(partnerTopicRoutingMode));
        }

        /**
         * @param partnerTopicRoutingMode This determines if events published to this partner namespace should use the source attribute in the event payload
         * or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.
         * 
         * @return builder
         * 
         */
        public Builder partnerTopicRoutingMode(String partnerTopicRoutingMode) {
            return partnerTopicRoutingMode(Either.ofLeft(partnerTopicRoutingMode));
        }

        /**
         * @param partnerTopicRoutingMode This determines if events published to this partner namespace should use the source attribute in the event payload
         * or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.
         * 
         * @return builder
         * 
         */
        public Builder partnerTopicRoutingMode(PartnerTopicRoutingMode partnerTopicRoutingMode) {
            return partnerTopicRoutingMode(Either.ofRight(partnerTopicRoutingMode));
        }

        /**
         * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled.
         * You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.PartnerNamespaceProperties.InboundIpRules" />
         * 
         * @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.
         * You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.PartnerNamespaceProperties.InboundIpRules" />
         * 
         * @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.
         * You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.PartnerNamespaceProperties.InboundIpRules" />
         * 
         * @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.
         * You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.PartnerNamespaceProperties.InboundIpRules" />
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
            return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
        }

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

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

        /**
         * @param tags Tags of the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Tags of the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public PartnerNamespaceArgs build() {
            $.disableLocalAuth = Codegen.booleanProp("disableLocalAuth").output().arg($.disableLocalAuth).def(false).getNullable();
            $.partnerTopicRoutingMode = Codegen.stringProp("partnerTopicRoutingMode").left(PartnerTopicRoutingMode.class).output().arg($.partnerTopicRoutingMode).def("SourceEventAttribute").getNullable();
            $.publicNetworkAccess = Codegen.stringProp("publicNetworkAccess").left(PublicNetworkAccess.class).output().arg($.publicNetworkAccess).def("Enabled").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("PartnerNamespaceArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy