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

com.pulumi.azurenative.digitaltwins.inputs.AzureDataExplorerConnectionPropertiesArgs Maven / Gradle / Ivy

The 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.digitaltwins.inputs;

import com.pulumi.azurenative.digitaltwins.enums.RecordPropertyAndItemRemovals;
import com.pulumi.azurenative.digitaltwins.inputs.ManagedIdentityReferenceArgs;
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.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Properties of a time series database connection to Azure Data Explorer with data being sent via an EventHub.
 * 
 */
public final class AzureDataExplorerConnectionPropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final AzureDataExplorerConnectionPropertiesArgs Empty = new AzureDataExplorerConnectionPropertiesArgs();

    /**
     * The name of the Azure Data Explorer database.
     * 
     */
    @Import(name="adxDatabaseName", required=true)
    private Output adxDatabaseName;

    /**
     * @return The name of the Azure Data Explorer database.
     * 
     */
    public Output adxDatabaseName() {
        return this.adxDatabaseName;
    }

    /**
     * The URI of the Azure Data Explorer endpoint.
     * 
     */
    @Import(name="adxEndpointUri", required=true)
    private Output adxEndpointUri;

    /**
     * @return The URI of the Azure Data Explorer endpoint.
     * 
     */
    public Output adxEndpointUri() {
        return this.adxEndpointUri;
    }

    /**
     * The name of the Azure Data Explorer table used for recording relationship lifecycle events. The table will not be created if this property is left unspecified.
     * 
     */
    @Import(name="adxRelationshipLifecycleEventsTableName")
    private @Nullable Output adxRelationshipLifecycleEventsTableName;

    /**
     * @return The name of the Azure Data Explorer table used for recording relationship lifecycle events. The table will not be created if this property is left unspecified.
     * 
     */
    public Optional> adxRelationshipLifecycleEventsTableName() {
        return Optional.ofNullable(this.adxRelationshipLifecycleEventsTableName);
    }

    /**
     * The resource ID of the Azure Data Explorer cluster.
     * 
     */
    @Import(name="adxResourceId", required=true)
    private Output adxResourceId;

    /**
     * @return The resource ID of the Azure Data Explorer cluster.
     * 
     */
    public Output adxResourceId() {
        return this.adxResourceId;
    }

    /**
     * The name of the Azure Data Explorer table used for storing updates to properties of twins and relationships. Defaults to AdtPropertyEvents.
     * 
     */
    @Import(name="adxTableName")
    private @Nullable Output adxTableName;

    /**
     * @return The name of the Azure Data Explorer table used for storing updates to properties of twins and relationships. Defaults to AdtPropertyEvents.
     * 
     */
    public Optional> adxTableName() {
        return Optional.ofNullable(this.adxTableName);
    }

    /**
     * The name of the Azure Data Explorer table used for recording twin lifecycle events. The table will not be created if this property is left unspecified.
     * 
     */
    @Import(name="adxTwinLifecycleEventsTableName")
    private @Nullable Output adxTwinLifecycleEventsTableName;

    /**
     * @return The name of the Azure Data Explorer table used for recording twin lifecycle events. The table will not be created if this property is left unspecified.
     * 
     */
    public Optional> adxTwinLifecycleEventsTableName() {
        return Optional.ofNullable(this.adxTwinLifecycleEventsTableName);
    }

    /**
     * The type of time series connection resource.
     * Expected value is 'AzureDataExplorer'.
     * 
     */
    @Import(name="connectionType", required=true)
    private Output connectionType;

    /**
     * @return The type of time series connection resource.
     * Expected value is 'AzureDataExplorer'.
     * 
     */
    public Output connectionType() {
        return this.connectionType;
    }

    /**
     * The EventHub consumer group to use when ADX reads from EventHub. Defaults to $Default.
     * 
     */
    @Import(name="eventHubConsumerGroup")
    private @Nullable Output eventHubConsumerGroup;

    /**
     * @return The EventHub consumer group to use when ADX reads from EventHub. Defaults to $Default.
     * 
     */
    public Optional> eventHubConsumerGroup() {
        return Optional.ofNullable(this.eventHubConsumerGroup);
    }

    /**
     * The URL of the EventHub namespace for identity-based authentication. It must include the protocol sb://
     * 
     */
    @Import(name="eventHubEndpointUri", required=true)
    private Output eventHubEndpointUri;

    /**
     * @return The URL of the EventHub namespace for identity-based authentication. It must include the protocol sb://
     * 
     */
    public Output eventHubEndpointUri() {
        return this.eventHubEndpointUri;
    }

    /**
     * The EventHub name in the EventHub namespace for identity-based authentication.
     * 
     */
    @Import(name="eventHubEntityPath", required=true)
    private Output eventHubEntityPath;

    /**
     * @return The EventHub name in the EventHub namespace for identity-based authentication.
     * 
     */
    public Output eventHubEntityPath() {
        return this.eventHubEntityPath;
    }

    /**
     * The resource ID of the EventHub namespace.
     * 
     */
    @Import(name="eventHubNamespaceResourceId", required=true)
    private Output eventHubNamespaceResourceId;

    /**
     * @return The resource ID of the EventHub namespace.
     * 
     */
    public Output eventHubNamespaceResourceId() {
        return this.eventHubNamespaceResourceId;
    }

    /**
     * Managed identity properties for the time series database connection resource.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return Managed identity properties for the time series database connection resource.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Specifies whether or not to record twin / relationship property and item removals, including removals of indexed or keyed values (such as map entries, array elements, etc.). This feature is de-activated unless explicitly set to 'true'. Setting this property to 'true' will generate an additional column in the property events table in ADX.
     * 
     */
    @Import(name="recordPropertyAndItemRemovals")
    private @Nullable Output> recordPropertyAndItemRemovals;

    /**
     * @return Specifies whether or not to record twin / relationship property and item removals, including removals of indexed or keyed values (such as map entries, array elements, etc.). This feature is de-activated unless explicitly set to 'true'. Setting this property to 'true' will generate an additional column in the property events table in ADX.
     * 
     */
    public Optional>> recordPropertyAndItemRemovals() {
        return Optional.ofNullable(this.recordPropertyAndItemRemovals);
    }

    private AzureDataExplorerConnectionPropertiesArgs() {}

    private AzureDataExplorerConnectionPropertiesArgs(AzureDataExplorerConnectionPropertiesArgs $) {
        this.adxDatabaseName = $.adxDatabaseName;
        this.adxEndpointUri = $.adxEndpointUri;
        this.adxRelationshipLifecycleEventsTableName = $.adxRelationshipLifecycleEventsTableName;
        this.adxResourceId = $.adxResourceId;
        this.adxTableName = $.adxTableName;
        this.adxTwinLifecycleEventsTableName = $.adxTwinLifecycleEventsTableName;
        this.connectionType = $.connectionType;
        this.eventHubConsumerGroup = $.eventHubConsumerGroup;
        this.eventHubEndpointUri = $.eventHubEndpointUri;
        this.eventHubEntityPath = $.eventHubEntityPath;
        this.eventHubNamespaceResourceId = $.eventHubNamespaceResourceId;
        this.identity = $.identity;
        this.recordPropertyAndItemRemovals = $.recordPropertyAndItemRemovals;
    }

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

    public static final class Builder {
        private AzureDataExplorerConnectionPropertiesArgs $;

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

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

        /**
         * @param adxDatabaseName The name of the Azure Data Explorer database.
         * 
         * @return builder
         * 
         */
        public Builder adxDatabaseName(Output adxDatabaseName) {
            $.adxDatabaseName = adxDatabaseName;
            return this;
        }

        /**
         * @param adxDatabaseName The name of the Azure Data Explorer database.
         * 
         * @return builder
         * 
         */
        public Builder adxDatabaseName(String adxDatabaseName) {
            return adxDatabaseName(Output.of(adxDatabaseName));
        }

        /**
         * @param adxEndpointUri The URI of the Azure Data Explorer endpoint.
         * 
         * @return builder
         * 
         */
        public Builder adxEndpointUri(Output adxEndpointUri) {
            $.adxEndpointUri = adxEndpointUri;
            return this;
        }

        /**
         * @param adxEndpointUri The URI of the Azure Data Explorer endpoint.
         * 
         * @return builder
         * 
         */
        public Builder adxEndpointUri(String adxEndpointUri) {
            return adxEndpointUri(Output.of(adxEndpointUri));
        }

        /**
         * @param adxRelationshipLifecycleEventsTableName The name of the Azure Data Explorer table used for recording relationship lifecycle events. The table will not be created if this property is left unspecified.
         * 
         * @return builder
         * 
         */
        public Builder adxRelationshipLifecycleEventsTableName(@Nullable Output adxRelationshipLifecycleEventsTableName) {
            $.adxRelationshipLifecycleEventsTableName = adxRelationshipLifecycleEventsTableName;
            return this;
        }

        /**
         * @param adxRelationshipLifecycleEventsTableName The name of the Azure Data Explorer table used for recording relationship lifecycle events. The table will not be created if this property is left unspecified.
         * 
         * @return builder
         * 
         */
        public Builder adxRelationshipLifecycleEventsTableName(String adxRelationshipLifecycleEventsTableName) {
            return adxRelationshipLifecycleEventsTableName(Output.of(adxRelationshipLifecycleEventsTableName));
        }

        /**
         * @param adxResourceId The resource ID of the Azure Data Explorer cluster.
         * 
         * @return builder
         * 
         */
        public Builder adxResourceId(Output adxResourceId) {
            $.adxResourceId = adxResourceId;
            return this;
        }

        /**
         * @param adxResourceId The resource ID of the Azure Data Explorer cluster.
         * 
         * @return builder
         * 
         */
        public Builder adxResourceId(String adxResourceId) {
            return adxResourceId(Output.of(adxResourceId));
        }

        /**
         * @param adxTableName The name of the Azure Data Explorer table used for storing updates to properties of twins and relationships. Defaults to AdtPropertyEvents.
         * 
         * @return builder
         * 
         */
        public Builder adxTableName(@Nullable Output adxTableName) {
            $.adxTableName = adxTableName;
            return this;
        }

        /**
         * @param adxTableName The name of the Azure Data Explorer table used for storing updates to properties of twins and relationships. Defaults to AdtPropertyEvents.
         * 
         * @return builder
         * 
         */
        public Builder adxTableName(String adxTableName) {
            return adxTableName(Output.of(adxTableName));
        }

        /**
         * @param adxTwinLifecycleEventsTableName The name of the Azure Data Explorer table used for recording twin lifecycle events. The table will not be created if this property is left unspecified.
         * 
         * @return builder
         * 
         */
        public Builder adxTwinLifecycleEventsTableName(@Nullable Output adxTwinLifecycleEventsTableName) {
            $.adxTwinLifecycleEventsTableName = adxTwinLifecycleEventsTableName;
            return this;
        }

        /**
         * @param adxTwinLifecycleEventsTableName The name of the Azure Data Explorer table used for recording twin lifecycle events. The table will not be created if this property is left unspecified.
         * 
         * @return builder
         * 
         */
        public Builder adxTwinLifecycleEventsTableName(String adxTwinLifecycleEventsTableName) {
            return adxTwinLifecycleEventsTableName(Output.of(adxTwinLifecycleEventsTableName));
        }

        /**
         * @param connectionType The type of time series connection resource.
         * Expected value is 'AzureDataExplorer'.
         * 
         * @return builder
         * 
         */
        public Builder connectionType(Output connectionType) {
            $.connectionType = connectionType;
            return this;
        }

        /**
         * @param connectionType The type of time series connection resource.
         * Expected value is 'AzureDataExplorer'.
         * 
         * @return builder
         * 
         */
        public Builder connectionType(String connectionType) {
            return connectionType(Output.of(connectionType));
        }

        /**
         * @param eventHubConsumerGroup The EventHub consumer group to use when ADX reads from EventHub. Defaults to $Default.
         * 
         * @return builder
         * 
         */
        public Builder eventHubConsumerGroup(@Nullable Output eventHubConsumerGroup) {
            $.eventHubConsumerGroup = eventHubConsumerGroup;
            return this;
        }

        /**
         * @param eventHubConsumerGroup The EventHub consumer group to use when ADX reads from EventHub. Defaults to $Default.
         * 
         * @return builder
         * 
         */
        public Builder eventHubConsumerGroup(String eventHubConsumerGroup) {
            return eventHubConsumerGroup(Output.of(eventHubConsumerGroup));
        }

        /**
         * @param eventHubEndpointUri The URL of the EventHub namespace for identity-based authentication. It must include the protocol sb://
         * 
         * @return builder
         * 
         */
        public Builder eventHubEndpointUri(Output eventHubEndpointUri) {
            $.eventHubEndpointUri = eventHubEndpointUri;
            return this;
        }

        /**
         * @param eventHubEndpointUri The URL of the EventHub namespace for identity-based authentication. It must include the protocol sb://
         * 
         * @return builder
         * 
         */
        public Builder eventHubEndpointUri(String eventHubEndpointUri) {
            return eventHubEndpointUri(Output.of(eventHubEndpointUri));
        }

        /**
         * @param eventHubEntityPath The EventHub name in the EventHub namespace for identity-based authentication.
         * 
         * @return builder
         * 
         */
        public Builder eventHubEntityPath(Output eventHubEntityPath) {
            $.eventHubEntityPath = eventHubEntityPath;
            return this;
        }

        /**
         * @param eventHubEntityPath The EventHub name in the EventHub namespace for identity-based authentication.
         * 
         * @return builder
         * 
         */
        public Builder eventHubEntityPath(String eventHubEntityPath) {
            return eventHubEntityPath(Output.of(eventHubEntityPath));
        }

        /**
         * @param eventHubNamespaceResourceId The resource ID of the EventHub namespace.
         * 
         * @return builder
         * 
         */
        public Builder eventHubNamespaceResourceId(Output eventHubNamespaceResourceId) {
            $.eventHubNamespaceResourceId = eventHubNamespaceResourceId;
            return this;
        }

        /**
         * @param eventHubNamespaceResourceId The resource ID of the EventHub namespace.
         * 
         * @return builder
         * 
         */
        public Builder eventHubNamespaceResourceId(String eventHubNamespaceResourceId) {
            return eventHubNamespaceResourceId(Output.of(eventHubNamespaceResourceId));
        }

        /**
         * @param identity Managed identity properties for the time series database connection resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity Managed identity properties for the time series database connection resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(ManagedIdentityReferenceArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param recordPropertyAndItemRemovals Specifies whether or not to record twin / relationship property and item removals, including removals of indexed or keyed values (such as map entries, array elements, etc.). This feature is de-activated unless explicitly set to 'true'. Setting this property to 'true' will generate an additional column in the property events table in ADX.
         * 
         * @return builder
         * 
         */
        public Builder recordPropertyAndItemRemovals(@Nullable Output> recordPropertyAndItemRemovals) {
            $.recordPropertyAndItemRemovals = recordPropertyAndItemRemovals;
            return this;
        }

        /**
         * @param recordPropertyAndItemRemovals Specifies whether or not to record twin / relationship property and item removals, including removals of indexed or keyed values (such as map entries, array elements, etc.). This feature is de-activated unless explicitly set to 'true'. Setting this property to 'true' will generate an additional column in the property events table in ADX.
         * 
         * @return builder
         * 
         */
        public Builder recordPropertyAndItemRemovals(Either recordPropertyAndItemRemovals) {
            return recordPropertyAndItemRemovals(Output.of(recordPropertyAndItemRemovals));
        }

        /**
         * @param recordPropertyAndItemRemovals Specifies whether or not to record twin / relationship property and item removals, including removals of indexed or keyed values (such as map entries, array elements, etc.). This feature is de-activated unless explicitly set to 'true'. Setting this property to 'true' will generate an additional column in the property events table in ADX.
         * 
         * @return builder
         * 
         */
        public Builder recordPropertyAndItemRemovals(String recordPropertyAndItemRemovals) {
            return recordPropertyAndItemRemovals(Either.ofLeft(recordPropertyAndItemRemovals));
        }

        /**
         * @param recordPropertyAndItemRemovals Specifies whether or not to record twin / relationship property and item removals, including removals of indexed or keyed values (such as map entries, array elements, etc.). This feature is de-activated unless explicitly set to 'true'. Setting this property to 'true' will generate an additional column in the property events table in ADX.
         * 
         * @return builder
         * 
         */
        public Builder recordPropertyAndItemRemovals(RecordPropertyAndItemRemovals recordPropertyAndItemRemovals) {
            return recordPropertyAndItemRemovals(Either.ofRight(recordPropertyAndItemRemovals));
        }

        public AzureDataExplorerConnectionPropertiesArgs build() {
            if ($.adxDatabaseName == null) {
                throw new MissingRequiredPropertyException("AzureDataExplorerConnectionPropertiesArgs", "adxDatabaseName");
            }
            if ($.adxEndpointUri == null) {
                throw new MissingRequiredPropertyException("AzureDataExplorerConnectionPropertiesArgs", "adxEndpointUri");
            }
            if ($.adxResourceId == null) {
                throw new MissingRequiredPropertyException("AzureDataExplorerConnectionPropertiesArgs", "adxResourceId");
            }
            $.adxTableName = Codegen.stringProp("adxTableName").output().arg($.adxTableName).def("AdtPropertyEvents").getNullable();
            $.connectionType = Codegen.stringProp("connectionType").output().arg($.connectionType).require();
            $.eventHubConsumerGroup = Codegen.stringProp("eventHubConsumerGroup").output().arg($.eventHubConsumerGroup).def("$Default").getNullable();
            if ($.eventHubEndpointUri == null) {
                throw new MissingRequiredPropertyException("AzureDataExplorerConnectionPropertiesArgs", "eventHubEndpointUri");
            }
            if ($.eventHubEntityPath == null) {
                throw new MissingRequiredPropertyException("AzureDataExplorerConnectionPropertiesArgs", "eventHubEntityPath");
            }
            if ($.eventHubNamespaceResourceId == null) {
                throw new MissingRequiredPropertyException("AzureDataExplorerConnectionPropertiesArgs", "eventHubNamespaceResourceId");
            }
            $.recordPropertyAndItemRemovals = Codegen.stringProp("recordPropertyAndItemRemovals").left(RecordPropertyAndItemRemovals.class).output().arg($.recordPropertyAndItemRemovals).def("false").getNullable();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy