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

com.pulumi.azurenative.kusto.IotHubDataConnectionArgs 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.kusto;

import com.pulumi.azurenative.kusto.enums.DatabaseRouting;
import com.pulumi.azurenative.kusto.enums.IotHubDataFormat;
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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final IotHubDataConnectionArgs Empty = new IotHubDataConnectionArgs();

    /**
     * The name of the Kusto cluster.
     * 
     */
    @Import(name="clusterName", required=true)
    private Output clusterName;

    /**
     * @return The name of the Kusto cluster.
     * 
     */
    public Output clusterName() {
        return this.clusterName;
    }

    /**
     * The iot hub consumer group.
     * 
     */
    @Import(name="consumerGroup", required=true)
    private Output consumerGroup;

    /**
     * @return The iot hub consumer group.
     * 
     */
    public Output consumerGroup() {
        return this.consumerGroup;
    }

    /**
     * The name of the data connection.
     * 
     */
    @Import(name="dataConnectionName")
    private @Nullable Output dataConnectionName;

    /**
     * @return The name of the data connection.
     * 
     */
    public Optional> dataConnectionName() {
        return Optional.ofNullable(this.dataConnectionName);
    }

    /**
     * The data format of the message. Optionally the data format can be added to each message.
     * 
     */
    @Import(name="dataFormat")
    private @Nullable Output> dataFormat;

    /**
     * @return The data format of the message. Optionally the data format can be added to each message.
     * 
     */
    public Optional>> dataFormat() {
        return Optional.ofNullable(this.dataFormat);
    }

    /**
     * The name of the database in the Kusto cluster.
     * 
     */
    @Import(name="databaseName", required=true)
    private Output databaseName;

    /**
     * @return The name of the database in the Kusto cluster.
     * 
     */
    public Output databaseName() {
        return this.databaseName;
    }

    /**
     * Indication for database routing information from the data connection, by default only database routing information is allowed
     * 
     */
    @Import(name="databaseRouting")
    private @Nullable Output> databaseRouting;

    /**
     * @return Indication for database routing information from the data connection, by default only database routing information is allowed
     * 
     */
    public Optional>> databaseRouting() {
        return Optional.ofNullable(this.databaseRouting);
    }

    /**
     * System properties of the iot hub
     * 
     */
    @Import(name="eventSystemProperties")
    private @Nullable Output> eventSystemProperties;

    /**
     * @return System properties of the iot hub
     * 
     */
    public Optional>> eventSystemProperties() {
        return Optional.ofNullable(this.eventSystemProperties);
    }

    /**
     * The resource ID of the Iot hub to be used to create a data connection.
     * 
     */
    @Import(name="iotHubResourceId", required=true)
    private Output iotHubResourceId;

    /**
     * @return The resource ID of the Iot hub to be used to create a data connection.
     * 
     */
    public Output iotHubResourceId() {
        return this.iotHubResourceId;
    }

    /**
     * Kind of the endpoint for the data connection
     * Expected value is 'IotHub'.
     * 
     */
    @Import(name="kind", required=true)
    private Output kind;

    /**
     * @return Kind of the endpoint for the data connection
     * Expected value is 'IotHub'.
     * 
     */
    public Output kind() {
        return this.kind;
    }

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

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

    /**
     * The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
     * 
     */
    @Import(name="mappingRuleName")
    private @Nullable Output mappingRuleName;

    /**
     * @return The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
     * 
     */
    public Optional> mappingRuleName() {
        return Optional.ofNullable(this.mappingRuleName);
    }

    /**
     * The name of the resource group containing the Kusto cluster.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group containing the Kusto cluster.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * When defined, the data connection retrieves existing Event hub events created since the Retrieval start date. It can only retrieve events retained by the Event hub, based on its retention period.
     * 
     */
    @Import(name="retrievalStartDate")
    private @Nullable Output retrievalStartDate;

    /**
     * @return When defined, the data connection retrieves existing Event hub events created since the Retrieval start date. It can only retrieve events retained by the Event hub, based on its retention period.
     * 
     */
    public Optional> retrievalStartDate() {
        return Optional.ofNullable(this.retrievalStartDate);
    }

    /**
     * The name of the share access policy
     * 
     */
    @Import(name="sharedAccessPolicyName", required=true)
    private Output sharedAccessPolicyName;

    /**
     * @return The name of the share access policy
     * 
     */
    public Output sharedAccessPolicyName() {
        return this.sharedAccessPolicyName;
    }

    /**
     * The table where the data should be ingested. Optionally the table information can be added to each message.
     * 
     */
    @Import(name="tableName")
    private @Nullable Output tableName;

    /**
     * @return The table where the data should be ingested. Optionally the table information can be added to each message.
     * 
     */
    public Optional> tableName() {
        return Optional.ofNullable(this.tableName);
    }

    private IotHubDataConnectionArgs() {}

    private IotHubDataConnectionArgs(IotHubDataConnectionArgs $) {
        this.clusterName = $.clusterName;
        this.consumerGroup = $.consumerGroup;
        this.dataConnectionName = $.dataConnectionName;
        this.dataFormat = $.dataFormat;
        this.databaseName = $.databaseName;
        this.databaseRouting = $.databaseRouting;
        this.eventSystemProperties = $.eventSystemProperties;
        this.iotHubResourceId = $.iotHubResourceId;
        this.kind = $.kind;
        this.location = $.location;
        this.mappingRuleName = $.mappingRuleName;
        this.resourceGroupName = $.resourceGroupName;
        this.retrievalStartDate = $.retrievalStartDate;
        this.sharedAccessPolicyName = $.sharedAccessPolicyName;
        this.tableName = $.tableName;
    }

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

    public static final class Builder {
        private IotHubDataConnectionArgs $;

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

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

        /**
         * @param clusterName The name of the Kusto cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterName(Output clusterName) {
            $.clusterName = clusterName;
            return this;
        }

        /**
         * @param clusterName The name of the Kusto cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterName(String clusterName) {
            return clusterName(Output.of(clusterName));
        }

        /**
         * @param consumerGroup The iot hub consumer group.
         * 
         * @return builder
         * 
         */
        public Builder consumerGroup(Output consumerGroup) {
            $.consumerGroup = consumerGroup;
            return this;
        }

        /**
         * @param consumerGroup The iot hub consumer group.
         * 
         * @return builder
         * 
         */
        public Builder consumerGroup(String consumerGroup) {
            return consumerGroup(Output.of(consumerGroup));
        }

        /**
         * @param dataConnectionName The name of the data connection.
         * 
         * @return builder
         * 
         */
        public Builder dataConnectionName(@Nullable Output dataConnectionName) {
            $.dataConnectionName = dataConnectionName;
            return this;
        }

        /**
         * @param dataConnectionName The name of the data connection.
         * 
         * @return builder
         * 
         */
        public Builder dataConnectionName(String dataConnectionName) {
            return dataConnectionName(Output.of(dataConnectionName));
        }

        /**
         * @param dataFormat The data format of the message. Optionally the data format can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder dataFormat(@Nullable Output> dataFormat) {
            $.dataFormat = dataFormat;
            return this;
        }

        /**
         * @param dataFormat The data format of the message. Optionally the data format can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder dataFormat(Either dataFormat) {
            return dataFormat(Output.of(dataFormat));
        }

        /**
         * @param dataFormat The data format of the message. Optionally the data format can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder dataFormat(String dataFormat) {
            return dataFormat(Either.ofLeft(dataFormat));
        }

        /**
         * @param dataFormat The data format of the message. Optionally the data format can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder dataFormat(IotHubDataFormat dataFormat) {
            return dataFormat(Either.ofRight(dataFormat));
        }

        /**
         * @param databaseName The name of the database in the Kusto cluster.
         * 
         * @return builder
         * 
         */
        public Builder databaseName(Output databaseName) {
            $.databaseName = databaseName;
            return this;
        }

        /**
         * @param databaseName The name of the database in the Kusto cluster.
         * 
         * @return builder
         * 
         */
        public Builder databaseName(String databaseName) {
            return databaseName(Output.of(databaseName));
        }

        /**
         * @param databaseRouting Indication for database routing information from the data connection, by default only database routing information is allowed
         * 
         * @return builder
         * 
         */
        public Builder databaseRouting(@Nullable Output> databaseRouting) {
            $.databaseRouting = databaseRouting;
            return this;
        }

        /**
         * @param databaseRouting Indication for database routing information from the data connection, by default only database routing information is allowed
         * 
         * @return builder
         * 
         */
        public Builder databaseRouting(Either databaseRouting) {
            return databaseRouting(Output.of(databaseRouting));
        }

        /**
         * @param databaseRouting Indication for database routing information from the data connection, by default only database routing information is allowed
         * 
         * @return builder
         * 
         */
        public Builder databaseRouting(String databaseRouting) {
            return databaseRouting(Either.ofLeft(databaseRouting));
        }

        /**
         * @param databaseRouting Indication for database routing information from the data connection, by default only database routing information is allowed
         * 
         * @return builder
         * 
         */
        public Builder databaseRouting(DatabaseRouting databaseRouting) {
            return databaseRouting(Either.ofRight(databaseRouting));
        }

        /**
         * @param eventSystemProperties System properties of the iot hub
         * 
         * @return builder
         * 
         */
        public Builder eventSystemProperties(@Nullable Output> eventSystemProperties) {
            $.eventSystemProperties = eventSystemProperties;
            return this;
        }

        /**
         * @param eventSystemProperties System properties of the iot hub
         * 
         * @return builder
         * 
         */
        public Builder eventSystemProperties(List eventSystemProperties) {
            return eventSystemProperties(Output.of(eventSystemProperties));
        }

        /**
         * @param eventSystemProperties System properties of the iot hub
         * 
         * @return builder
         * 
         */
        public Builder eventSystemProperties(String... eventSystemProperties) {
            return eventSystemProperties(List.of(eventSystemProperties));
        }

        /**
         * @param iotHubResourceId The resource ID of the Iot hub to be used to create a data connection.
         * 
         * @return builder
         * 
         */
        public Builder iotHubResourceId(Output iotHubResourceId) {
            $.iotHubResourceId = iotHubResourceId;
            return this;
        }

        /**
         * @param iotHubResourceId The resource ID of the Iot hub to be used to create a data connection.
         * 
         * @return builder
         * 
         */
        public Builder iotHubResourceId(String iotHubResourceId) {
            return iotHubResourceId(Output.of(iotHubResourceId));
        }

        /**
         * @param kind Kind of the endpoint for the data connection
         * Expected value is 'IotHub'.
         * 
         * @return builder
         * 
         */
        public Builder kind(Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Kind of the endpoint for the data connection
         * Expected value is 'IotHub'.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @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 mappingRuleName The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder mappingRuleName(@Nullable Output mappingRuleName) {
            $.mappingRuleName = mappingRuleName;
            return this;
        }

        /**
         * @param mappingRuleName The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder mappingRuleName(String mappingRuleName) {
            return mappingRuleName(Output.of(mappingRuleName));
        }

        /**
         * @param resourceGroupName The name of the resource group containing the Kusto cluster.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group containing the Kusto cluster.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param retrievalStartDate When defined, the data connection retrieves existing Event hub events created since the Retrieval start date. It can only retrieve events retained by the Event hub, based on its retention period.
         * 
         * @return builder
         * 
         */
        public Builder retrievalStartDate(@Nullable Output retrievalStartDate) {
            $.retrievalStartDate = retrievalStartDate;
            return this;
        }

        /**
         * @param retrievalStartDate When defined, the data connection retrieves existing Event hub events created since the Retrieval start date. It can only retrieve events retained by the Event hub, based on its retention period.
         * 
         * @return builder
         * 
         */
        public Builder retrievalStartDate(String retrievalStartDate) {
            return retrievalStartDate(Output.of(retrievalStartDate));
        }

        /**
         * @param sharedAccessPolicyName The name of the share access policy
         * 
         * @return builder
         * 
         */
        public Builder sharedAccessPolicyName(Output sharedAccessPolicyName) {
            $.sharedAccessPolicyName = sharedAccessPolicyName;
            return this;
        }

        /**
         * @param sharedAccessPolicyName The name of the share access policy
         * 
         * @return builder
         * 
         */
        public Builder sharedAccessPolicyName(String sharedAccessPolicyName) {
            return sharedAccessPolicyName(Output.of(sharedAccessPolicyName));
        }

        /**
         * @param tableName The table where the data should be ingested. Optionally the table information can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder tableName(@Nullable Output tableName) {
            $.tableName = tableName;
            return this;
        }

        /**
         * @param tableName The table where the data should be ingested. Optionally the table information can be added to each message.
         * 
         * @return builder
         * 
         */
        public Builder tableName(String tableName) {
            return tableName(Output.of(tableName));
        }

        public IotHubDataConnectionArgs build() {
            if ($.clusterName == null) {
                throw new MissingRequiredPropertyException("IotHubDataConnectionArgs", "clusterName");
            }
            if ($.consumerGroup == null) {
                throw new MissingRequiredPropertyException("IotHubDataConnectionArgs", "consumerGroup");
            }
            if ($.databaseName == null) {
                throw new MissingRequiredPropertyException("IotHubDataConnectionArgs", "databaseName");
            }
            $.databaseRouting = Codegen.stringProp("databaseRouting").left(DatabaseRouting.class).output().arg($.databaseRouting).def("Single").getNullable();
            if ($.iotHubResourceId == null) {
                throw new MissingRequiredPropertyException("IotHubDataConnectionArgs", "iotHubResourceId");
            }
            $.kind = Codegen.stringProp("kind").output().arg($.kind).require();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("IotHubDataConnectionArgs", "resourceGroupName");
            }
            if ($.sharedAccessPolicyName == null) {
                throw new MissingRequiredPropertyException("IotHubDataConnectionArgs", "sharedAccessPolicyName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy