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

com.pulumi.azurenative.devices.inputs.IotHubPropertiesArgs 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.devices.inputs;

import com.pulumi.azurenative.devices.enums.Capabilities;
import com.pulumi.azurenative.devices.enums.PublicNetworkAccess;
import com.pulumi.azurenative.devices.inputs.CloudToDevicePropertiesArgs;
import com.pulumi.azurenative.devices.inputs.EncryptionPropertiesDescriptionArgs;
import com.pulumi.azurenative.devices.inputs.EventHubPropertiesArgs;
import com.pulumi.azurenative.devices.inputs.IotHubPropertiesDeviceStreamsArgs;
import com.pulumi.azurenative.devices.inputs.IpFilterRuleArgs;
import com.pulumi.azurenative.devices.inputs.MessagingEndpointPropertiesArgs;
import com.pulumi.azurenative.devices.inputs.NetworkRuleSetPropertiesArgs;
import com.pulumi.azurenative.devices.inputs.PrivateEndpointConnectionArgs;
import com.pulumi.azurenative.devices.inputs.RootCertificatePropertiesArgs;
import com.pulumi.azurenative.devices.inputs.RoutingPropertiesArgs;
import com.pulumi.azurenative.devices.inputs.SharedAccessSignatureAuthorizationRuleArgs;
import com.pulumi.azurenative.devices.inputs.StorageEndpointPropertiesArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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;


/**
 * The properties of an IoT hub.
 * 
 */
public final class IotHubPropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final IotHubPropertiesArgs Empty = new IotHubPropertiesArgs();

    /**
     * List of allowed FQDNs(Fully Qualified Domain Name) for egress from Iot Hub.
     * 
     */
    @Import(name="allowedFqdnList")
    private @Nullable Output> allowedFqdnList;

    /**
     * @return List of allowed FQDNs(Fully Qualified Domain Name) for egress from Iot Hub.
     * 
     */
    public Optional>> allowedFqdnList() {
        return Optional.ofNullable(this.allowedFqdnList);
    }

    /**
     * The shared access policies you can use to secure a connection to the IoT hub.
     * 
     */
    @Import(name="authorizationPolicies")
    private @Nullable Output> authorizationPolicies;

    /**
     * @return The shared access policies you can use to secure a connection to the IoT hub.
     * 
     */
    public Optional>> authorizationPolicies() {
        return Optional.ofNullable(this.authorizationPolicies);
    }

    /**
     * The IoT hub cloud-to-device messaging properties.
     * 
     */
    @Import(name="cloudToDevice")
    private @Nullable Output cloudToDevice;

    /**
     * @return The IoT hub cloud-to-device messaging properties.
     * 
     */
    public Optional> cloudToDevice() {
        return Optional.ofNullable(this.cloudToDevice);
    }

    /**
     * IoT hub comments.
     * 
     */
    @Import(name="comments")
    private @Nullable Output comments;

    /**
     * @return IoT hub comments.
     * 
     */
    public Optional> comments() {
        return Optional.ofNullable(this.comments);
    }

    /**
     * The device streams properties of iothub.
     * 
     */
    @Import(name="deviceStreams")
    private @Nullable Output deviceStreams;

    /**
     * @return The device streams properties of iothub.
     * 
     */
    public Optional> deviceStreams() {
        return Optional.ofNullable(this.deviceStreams);
    }

    /**
     * If true, all device(including Edge devices but excluding modules) scoped SAS keys cannot be used for authentication.
     * 
     */
    @Import(name="disableDeviceSAS")
    private @Nullable Output disableDeviceSAS;

    /**
     * @return If true, all device(including Edge devices but excluding modules) scoped SAS keys cannot be used for authentication.
     * 
     */
    public Optional> disableDeviceSAS() {
        return Optional.ofNullable(this.disableDeviceSAS);
    }

    /**
     * If true, SAS tokens with Iot hub scoped SAS keys cannot be used for authentication.
     * 
     */
    @Import(name="disableLocalAuth")
    private @Nullable Output disableLocalAuth;

    /**
     * @return If true, SAS tokens with Iot hub scoped SAS keys cannot be used for authentication.
     * 
     */
    public Optional> disableLocalAuth() {
        return Optional.ofNullable(this.disableLocalAuth);
    }

    /**
     * If true, all module scoped SAS keys cannot be used for authentication.
     * 
     */
    @Import(name="disableModuleSAS")
    private @Nullable Output disableModuleSAS;

    /**
     * @return If true, all module scoped SAS keys cannot be used for authentication.
     * 
     */
    public Optional> disableModuleSAS() {
        return Optional.ofNullable(this.disableModuleSAS);
    }

    /**
     * This property when set to true, will enable data residency, thus, disabling disaster recovery.
     * 
     */
    @Import(name="enableDataResidency")
    private @Nullable Output enableDataResidency;

    /**
     * @return This property when set to true, will enable data residency, thus, disabling disaster recovery.
     * 
     */
    public Optional> enableDataResidency() {
        return Optional.ofNullable(this.enableDataResidency);
    }

    /**
     * If True, file upload notifications are enabled.
     * 
     */
    @Import(name="enableFileUploadNotifications")
    private @Nullable Output enableFileUploadNotifications;

    /**
     * @return If True, file upload notifications are enabled.
     * 
     */
    public Optional> enableFileUploadNotifications() {
        return Optional.ofNullable(this.enableFileUploadNotifications);
    }

    /**
     * The encryption properties for the IoT hub.
     * 
     */
    @Import(name="encryption")
    private @Nullable Output encryption;

    /**
     * @return The encryption properties for the IoT hub.
     * 
     */
    public Optional> encryption() {
        return Optional.ofNullable(this.encryption);
    }

    /**
     * The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.
     * 
     */
    @Import(name="eventHubEndpoints")
    private @Nullable Output> eventHubEndpoints;

    /**
     * @return The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.
     * 
     */
    public Optional>> eventHubEndpoints() {
        return Optional.ofNullable(this.eventHubEndpoints);
    }

    /**
     * The capabilities and features enabled for the IoT hub.
     * 
     */
    @Import(name="features")
    private @Nullable Output> features;

    /**
     * @return The capabilities and features enabled for the IoT hub.
     * 
     */
    public Optional>> features() {
        return Optional.ofNullable(this.features);
    }

    /**
     * The IP filter rules.
     * 
     */
    @Import(name="ipFilterRules")
    private @Nullable Output> ipFilterRules;

    /**
     * @return The IP filter rules.
     * 
     */
    public Optional>> ipFilterRules() {
        return Optional.ofNullable(this.ipFilterRules);
    }

    /**
     * The messaging endpoint properties for the file upload notification queue.
     * 
     */
    @Import(name="messagingEndpoints")
    private @Nullable Output> messagingEndpoints;

    /**
     * @return The messaging endpoint properties for the file upload notification queue.
     * 
     */
    public Optional>> messagingEndpoints() {
        return Optional.ofNullable(this.messagingEndpoints);
    }

    /**
     * Specifies the minimum TLS version to support for this hub. Can be set to "1.2" to have clients that use a TLS version below 1.2 to be rejected.
     * 
     */
    @Import(name="minTlsVersion")
    private @Nullable Output minTlsVersion;

    /**
     * @return Specifies the minimum TLS version to support for this hub. Can be set to "1.2" to have clients that use a TLS version below 1.2 to be rejected.
     * 
     */
    public Optional> minTlsVersion() {
        return Optional.ofNullable(this.minTlsVersion);
    }

    /**
     * Network Rule Set Properties of IotHub
     * 
     */
    @Import(name="networkRuleSets")
    private @Nullable Output networkRuleSets;

    /**
     * @return Network Rule Set Properties of IotHub
     * 
     */
    public Optional> networkRuleSets() {
        return Optional.ofNullable(this.networkRuleSets);
    }

    /**
     * Private endpoint connections created on this IotHub
     * 
     */
    @Import(name="privateEndpointConnections")
    private @Nullable Output> privateEndpointConnections;

    /**
     * @return Private endpoint connections created on this IotHub
     * 
     */
    public Optional>> privateEndpointConnections() {
        return Optional.ofNullable(this.privateEndpointConnections);
    }

    /**
     * Whether requests from Public Network are allowed
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output> publicNetworkAccess;

    /**
     * @return Whether requests from Public Network are allowed
     * 
     */
    public Optional>> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

    /**
     * If true, egress from IotHub will be restricted to only the allowed FQDNs that are configured via allowedFqdnList.
     * 
     */
    @Import(name="restrictOutboundNetworkAccess")
    private @Nullable Output restrictOutboundNetworkAccess;

    /**
     * @return If true, egress from IotHub will be restricted to only the allowed FQDNs that are configured via allowedFqdnList.
     * 
     */
    public Optional> restrictOutboundNetworkAccess() {
        return Optional.ofNullable(this.restrictOutboundNetworkAccess);
    }

    /**
     * This property store root certificate related information
     * 
     */
    @Import(name="rootCertificate")
    private @Nullable Output rootCertificate;

    /**
     * @return This property store root certificate related information
     * 
     */
    public Optional> rootCertificate() {
        return Optional.ofNullable(this.rootCertificate);
    }

    /**
     * The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging
     * 
     */
    @Import(name="routing")
    private @Nullable Output routing;

    /**
     * @return The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging
     * 
     */
    public Optional> routing() {
        return Optional.ofNullable(this.routing);
    }

    /**
     * The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.
     * 
     */
    @Import(name="storageEndpoints")
    private @Nullable Output> storageEndpoints;

    /**
     * @return The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.
     * 
     */
    public Optional>> storageEndpoints() {
        return Optional.ofNullable(this.storageEndpoints);
    }

    private IotHubPropertiesArgs() {}

    private IotHubPropertiesArgs(IotHubPropertiesArgs $) {
        this.allowedFqdnList = $.allowedFqdnList;
        this.authorizationPolicies = $.authorizationPolicies;
        this.cloudToDevice = $.cloudToDevice;
        this.comments = $.comments;
        this.deviceStreams = $.deviceStreams;
        this.disableDeviceSAS = $.disableDeviceSAS;
        this.disableLocalAuth = $.disableLocalAuth;
        this.disableModuleSAS = $.disableModuleSAS;
        this.enableDataResidency = $.enableDataResidency;
        this.enableFileUploadNotifications = $.enableFileUploadNotifications;
        this.encryption = $.encryption;
        this.eventHubEndpoints = $.eventHubEndpoints;
        this.features = $.features;
        this.ipFilterRules = $.ipFilterRules;
        this.messagingEndpoints = $.messagingEndpoints;
        this.minTlsVersion = $.minTlsVersion;
        this.networkRuleSets = $.networkRuleSets;
        this.privateEndpointConnections = $.privateEndpointConnections;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.restrictOutboundNetworkAccess = $.restrictOutboundNetworkAccess;
        this.rootCertificate = $.rootCertificate;
        this.routing = $.routing;
        this.storageEndpoints = $.storageEndpoints;
    }

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

    public static final class Builder {
        private IotHubPropertiesArgs $;

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

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

        /**
         * @param allowedFqdnList List of allowed FQDNs(Fully Qualified Domain Name) for egress from Iot Hub.
         * 
         * @return builder
         * 
         */
        public Builder allowedFqdnList(@Nullable Output> allowedFqdnList) {
            $.allowedFqdnList = allowedFqdnList;
            return this;
        }

        /**
         * @param allowedFqdnList List of allowed FQDNs(Fully Qualified Domain Name) for egress from Iot Hub.
         * 
         * @return builder
         * 
         */
        public Builder allowedFqdnList(List allowedFqdnList) {
            return allowedFqdnList(Output.of(allowedFqdnList));
        }

        /**
         * @param allowedFqdnList List of allowed FQDNs(Fully Qualified Domain Name) for egress from Iot Hub.
         * 
         * @return builder
         * 
         */
        public Builder allowedFqdnList(String... allowedFqdnList) {
            return allowedFqdnList(List.of(allowedFqdnList));
        }

        /**
         * @param authorizationPolicies The shared access policies you can use to secure a connection to the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder authorizationPolicies(@Nullable Output> authorizationPolicies) {
            $.authorizationPolicies = authorizationPolicies;
            return this;
        }

        /**
         * @param authorizationPolicies The shared access policies you can use to secure a connection to the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder authorizationPolicies(List authorizationPolicies) {
            return authorizationPolicies(Output.of(authorizationPolicies));
        }

        /**
         * @param authorizationPolicies The shared access policies you can use to secure a connection to the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder authorizationPolicies(SharedAccessSignatureAuthorizationRuleArgs... authorizationPolicies) {
            return authorizationPolicies(List.of(authorizationPolicies));
        }

        /**
         * @param cloudToDevice The IoT hub cloud-to-device messaging properties.
         * 
         * @return builder
         * 
         */
        public Builder cloudToDevice(@Nullable Output cloudToDevice) {
            $.cloudToDevice = cloudToDevice;
            return this;
        }

        /**
         * @param cloudToDevice The IoT hub cloud-to-device messaging properties.
         * 
         * @return builder
         * 
         */
        public Builder cloudToDevice(CloudToDevicePropertiesArgs cloudToDevice) {
            return cloudToDevice(Output.of(cloudToDevice));
        }

        /**
         * @param comments IoT hub comments.
         * 
         * @return builder
         * 
         */
        public Builder comments(@Nullable Output comments) {
            $.comments = comments;
            return this;
        }

        /**
         * @param comments IoT hub comments.
         * 
         * @return builder
         * 
         */
        public Builder comments(String comments) {
            return comments(Output.of(comments));
        }

        /**
         * @param deviceStreams The device streams properties of iothub.
         * 
         * @return builder
         * 
         */
        public Builder deviceStreams(@Nullable Output deviceStreams) {
            $.deviceStreams = deviceStreams;
            return this;
        }

        /**
         * @param deviceStreams The device streams properties of iothub.
         * 
         * @return builder
         * 
         */
        public Builder deviceStreams(IotHubPropertiesDeviceStreamsArgs deviceStreams) {
            return deviceStreams(Output.of(deviceStreams));
        }

        /**
         * @param disableDeviceSAS If true, all device(including Edge devices but excluding modules) scoped SAS keys cannot be used for authentication.
         * 
         * @return builder
         * 
         */
        public Builder disableDeviceSAS(@Nullable Output disableDeviceSAS) {
            $.disableDeviceSAS = disableDeviceSAS;
            return this;
        }

        /**
         * @param disableDeviceSAS If true, all device(including Edge devices but excluding modules) scoped SAS keys cannot be used for authentication.
         * 
         * @return builder
         * 
         */
        public Builder disableDeviceSAS(Boolean disableDeviceSAS) {
            return disableDeviceSAS(Output.of(disableDeviceSAS));
        }

        /**
         * @param disableLocalAuth If true, SAS tokens with Iot hub scoped SAS keys cannot be used for authentication.
         * 
         * @return builder
         * 
         */
        public Builder disableLocalAuth(@Nullable Output disableLocalAuth) {
            $.disableLocalAuth = disableLocalAuth;
            return this;
        }

        /**
         * @param disableLocalAuth If true, SAS tokens with Iot hub scoped SAS keys cannot be used for authentication.
         * 
         * @return builder
         * 
         */
        public Builder disableLocalAuth(Boolean disableLocalAuth) {
            return disableLocalAuth(Output.of(disableLocalAuth));
        }

        /**
         * @param disableModuleSAS If true, all module scoped SAS keys cannot be used for authentication.
         * 
         * @return builder
         * 
         */
        public Builder disableModuleSAS(@Nullable Output disableModuleSAS) {
            $.disableModuleSAS = disableModuleSAS;
            return this;
        }

        /**
         * @param disableModuleSAS If true, all module scoped SAS keys cannot be used for authentication.
         * 
         * @return builder
         * 
         */
        public Builder disableModuleSAS(Boolean disableModuleSAS) {
            return disableModuleSAS(Output.of(disableModuleSAS));
        }

        /**
         * @param enableDataResidency This property when set to true, will enable data residency, thus, disabling disaster recovery.
         * 
         * @return builder
         * 
         */
        public Builder enableDataResidency(@Nullable Output enableDataResidency) {
            $.enableDataResidency = enableDataResidency;
            return this;
        }

        /**
         * @param enableDataResidency This property when set to true, will enable data residency, thus, disabling disaster recovery.
         * 
         * @return builder
         * 
         */
        public Builder enableDataResidency(Boolean enableDataResidency) {
            return enableDataResidency(Output.of(enableDataResidency));
        }

        /**
         * @param enableFileUploadNotifications If True, file upload notifications are enabled.
         * 
         * @return builder
         * 
         */
        public Builder enableFileUploadNotifications(@Nullable Output enableFileUploadNotifications) {
            $.enableFileUploadNotifications = enableFileUploadNotifications;
            return this;
        }

        /**
         * @param enableFileUploadNotifications If True, file upload notifications are enabled.
         * 
         * @return builder
         * 
         */
        public Builder enableFileUploadNotifications(Boolean enableFileUploadNotifications) {
            return enableFileUploadNotifications(Output.of(enableFileUploadNotifications));
        }

        /**
         * @param encryption The encryption properties for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder encryption(@Nullable Output encryption) {
            $.encryption = encryption;
            return this;
        }

        /**
         * @param encryption The encryption properties for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder encryption(EncryptionPropertiesDescriptionArgs encryption) {
            return encryption(Output.of(encryption));
        }

        /**
         * @param eventHubEndpoints The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder eventHubEndpoints(@Nullable Output> eventHubEndpoints) {
            $.eventHubEndpoints = eventHubEndpoints;
            return this;
        }

        /**
         * @param eventHubEndpoints The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder eventHubEndpoints(Map eventHubEndpoints) {
            return eventHubEndpoints(Output.of(eventHubEndpoints));
        }

        /**
         * @param features The capabilities and features enabled for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder features(@Nullable Output> features) {
            $.features = features;
            return this;
        }

        /**
         * @param features The capabilities and features enabled for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder features(Either features) {
            return features(Output.of(features));
        }

        /**
         * @param features The capabilities and features enabled for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder features(String features) {
            return features(Either.ofLeft(features));
        }

        /**
         * @param features The capabilities and features enabled for the IoT hub.
         * 
         * @return builder
         * 
         */
        public Builder features(Capabilities features) {
            return features(Either.ofRight(features));
        }

        /**
         * @param ipFilterRules The IP filter rules.
         * 
         * @return builder
         * 
         */
        public Builder ipFilterRules(@Nullable Output> ipFilterRules) {
            $.ipFilterRules = ipFilterRules;
            return this;
        }

        /**
         * @param ipFilterRules The IP filter rules.
         * 
         * @return builder
         * 
         */
        public Builder ipFilterRules(List ipFilterRules) {
            return ipFilterRules(Output.of(ipFilterRules));
        }

        /**
         * @param ipFilterRules The IP filter rules.
         * 
         * @return builder
         * 
         */
        public Builder ipFilterRules(IpFilterRuleArgs... ipFilterRules) {
            return ipFilterRules(List.of(ipFilterRules));
        }

        /**
         * @param messagingEndpoints The messaging endpoint properties for the file upload notification queue.
         * 
         * @return builder
         * 
         */
        public Builder messagingEndpoints(@Nullable Output> messagingEndpoints) {
            $.messagingEndpoints = messagingEndpoints;
            return this;
        }

        /**
         * @param messagingEndpoints The messaging endpoint properties for the file upload notification queue.
         * 
         * @return builder
         * 
         */
        public Builder messagingEndpoints(Map messagingEndpoints) {
            return messagingEndpoints(Output.of(messagingEndpoints));
        }

        /**
         * @param minTlsVersion Specifies the minimum TLS version to support for this hub. Can be set to "1.2" to have clients that use a TLS version below 1.2 to be rejected.
         * 
         * @return builder
         * 
         */
        public Builder minTlsVersion(@Nullable Output minTlsVersion) {
            $.minTlsVersion = minTlsVersion;
            return this;
        }

        /**
         * @param minTlsVersion Specifies the minimum TLS version to support for this hub. Can be set to "1.2" to have clients that use a TLS version below 1.2 to be rejected.
         * 
         * @return builder
         * 
         */
        public Builder minTlsVersion(String minTlsVersion) {
            return minTlsVersion(Output.of(minTlsVersion));
        }

        /**
         * @param networkRuleSets Network Rule Set Properties of IotHub
         * 
         * @return builder
         * 
         */
        public Builder networkRuleSets(@Nullable Output networkRuleSets) {
            $.networkRuleSets = networkRuleSets;
            return this;
        }

        /**
         * @param networkRuleSets Network Rule Set Properties of IotHub
         * 
         * @return builder
         * 
         */
        public Builder networkRuleSets(NetworkRuleSetPropertiesArgs networkRuleSets) {
            return networkRuleSets(Output.of(networkRuleSets));
        }

        /**
         * @param privateEndpointConnections Private endpoint connections created on this IotHub
         * 
         * @return builder
         * 
         */
        public Builder privateEndpointConnections(@Nullable Output> privateEndpointConnections) {
            $.privateEndpointConnections = privateEndpointConnections;
            return this;
        }

        /**
         * @param privateEndpointConnections Private endpoint connections created on this IotHub
         * 
         * @return builder
         * 
         */
        public Builder privateEndpointConnections(List privateEndpointConnections) {
            return privateEndpointConnections(Output.of(privateEndpointConnections));
        }

        /**
         * @param privateEndpointConnections Private endpoint connections created on this IotHub
         * 
         * @return builder
         * 
         */
        public Builder privateEndpointConnections(PrivateEndpointConnectionArgs... privateEndpointConnections) {
            return privateEndpointConnections(List.of(privateEndpointConnections));
        }

        /**
         * @param publicNetworkAccess Whether requests from Public Network are allowed
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output> publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess Whether requests from Public Network are allowed
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(Either publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess Whether requests from Public Network are allowed
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(String publicNetworkAccess) {
            return publicNetworkAccess(Either.ofLeft(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess Whether requests from Public Network are allowed
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
            return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
        }

        /**
         * @param restrictOutboundNetworkAccess If true, egress from IotHub will be restricted to only the allowed FQDNs that are configured via allowedFqdnList.
         * 
         * @return builder
         * 
         */
        public Builder restrictOutboundNetworkAccess(@Nullable Output restrictOutboundNetworkAccess) {
            $.restrictOutboundNetworkAccess = restrictOutboundNetworkAccess;
            return this;
        }

        /**
         * @param restrictOutboundNetworkAccess If true, egress from IotHub will be restricted to only the allowed FQDNs that are configured via allowedFqdnList.
         * 
         * @return builder
         * 
         */
        public Builder restrictOutboundNetworkAccess(Boolean restrictOutboundNetworkAccess) {
            return restrictOutboundNetworkAccess(Output.of(restrictOutboundNetworkAccess));
        }

        /**
         * @param rootCertificate This property store root certificate related information
         * 
         * @return builder
         * 
         */
        public Builder rootCertificate(@Nullable Output rootCertificate) {
            $.rootCertificate = rootCertificate;
            return this;
        }

        /**
         * @param rootCertificate This property store root certificate related information
         * 
         * @return builder
         * 
         */
        public Builder rootCertificate(RootCertificatePropertiesArgs rootCertificate) {
            return rootCertificate(Output.of(rootCertificate));
        }

        /**
         * @param routing The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging
         * 
         * @return builder
         * 
         */
        public Builder routing(@Nullable Output routing) {
            $.routing = routing;
            return this;
        }

        /**
         * @param routing The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging
         * 
         * @return builder
         * 
         */
        public Builder routing(RoutingPropertiesArgs routing) {
            return routing(Output.of(routing));
        }

        /**
         * @param storageEndpoints The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.
         * 
         * @return builder
         * 
         */
        public Builder storageEndpoints(@Nullable Output> storageEndpoints) {
            $.storageEndpoints = storageEndpoints;
            return this;
        }

        /**
         * @param storageEndpoints The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.
         * 
         * @return builder
         * 
         */
        public Builder storageEndpoints(Map storageEndpoints) {
            return storageEndpoints(Output.of(storageEndpoints));
        }

        public IotHubPropertiesArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy