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

com.pulumi.azure.iot.kotlin.inputs.IoTHubEndpointArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.iot.kotlin.inputs

import com.pulumi.azure.iot.inputs.IoTHubEndpointArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property authenticationType The type used to authenticate against the endpoint. Possible values are `keyBased` and `identityBased`. Defaults to `keyBased`.
 * @property batchFrequencyInSeconds Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`.
 * @property connectionString The connection string for the endpoint. This attribute is mandatory and can only be specified when `authentication_type` is `keyBased`.
 * @property containerName The name of storage container in the storage account. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.
 * @property encoding Encoding that is used to serialize messages to blobs. Supported values are `Avro`, `AvroDeflate` and `JSON`. Default value is `Avro`. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`. Changing this forces a new resource to be created.
 * @property endpointUri URI of the Service Bus or Event Hubs Namespace endpoint. This attribute can only be specified and is mandatory when `authentication_type` is `identityBased` for endpoint type `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
 * @property entityPath Name of the Service Bus Queue/Topic or Event Hub. This attribute can only be specified and is mandatory when `authentication_type` is `identityBased` for endpoint type `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
 * @property fileNameFormat File name format for the blob. All parameters are mandatory but can be reordered. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`. Defaults to `{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}`.
 * @property identityId The ID of the User Managed Identity used to authenticate against the endpoint.
 * > **NOTE:** `identity_id` can only be specified when `authentication_type` is `identityBased`. It must be one of the `identity_ids` of the IoT Hub. If `identity_id` is omitted when `authentication_type` is `identityBased`, then the System-Assigned Managed Identity of the IoT Hub will be used.
 * > **NOTE:** An IoT Hub can only be updated to use the System-Assigned Managed Identity for `endpoint` since it is not possible to grant access to the endpoint until after creation. The extracted resources `azurerm_iothub_endpoint_*` can be used to configure Endpoints with the IoT Hub's System-Assigned Managed Identity without the need for an update.
 * @property maxChunkSizeInBytes Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB). This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`.
 * @property name The name of the endpoint. The name must be unique across endpoint types. The following names are reserved: `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.
 * @property resourceGroupName The resource group in which the endpoint will be created.
 * @property type The type of the endpoint. Possible values are `AzureIotHub.StorageContainer`, `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
 */
public data class IoTHubEndpointArgs(
    public val authenticationType: Output? = null,
    public val batchFrequencyInSeconds: Output? = null,
    public val connectionString: Output? = null,
    public val containerName: Output? = null,
    public val encoding: Output? = null,
    public val endpointUri: Output? = null,
    public val entityPath: Output? = null,
    public val fileNameFormat: Output? = null,
    public val identityId: Output? = null,
    public val maxChunkSizeInBytes: Output? = null,
    public val name: Output,
    public val resourceGroupName: Output? = null,
    public val type: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.iot.inputs.IoTHubEndpointArgs =
        com.pulumi.azure.iot.inputs.IoTHubEndpointArgs.builder()
            .authenticationType(authenticationType?.applyValue({ args0 -> args0 }))
            .batchFrequencyInSeconds(batchFrequencyInSeconds?.applyValue({ args0 -> args0 }))
            .connectionString(connectionString?.applyValue({ args0 -> args0 }))
            .containerName(containerName?.applyValue({ args0 -> args0 }))
            .encoding(encoding?.applyValue({ args0 -> args0 }))
            .endpointUri(endpointUri?.applyValue({ args0 -> args0 }))
            .entityPath(entityPath?.applyValue({ args0 -> args0 }))
            .fileNameFormat(fileNameFormat?.applyValue({ args0 -> args0 }))
            .identityId(identityId?.applyValue({ args0 -> args0 }))
            .maxChunkSizeInBytes(maxChunkSizeInBytes?.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .type(type.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [IoTHubEndpointArgs].
 */
@PulumiTagMarker
public class IoTHubEndpointArgsBuilder internal constructor() {
    private var authenticationType: Output? = null

    private var batchFrequencyInSeconds: Output? = null

    private var connectionString: Output? = null

    private var containerName: Output? = null

    private var encoding: Output? = null

    private var endpointUri: Output? = null

    private var entityPath: Output? = null

    private var fileNameFormat: Output? = null

    private var identityId: Output? = null

    private var maxChunkSizeInBytes: Output? = null

    private var name: Output? = null

    private var resourceGroupName: Output? = null

    private var type: Output? = null

    /**
     * @param value The type used to authenticate against the endpoint. Possible values are `keyBased` and `identityBased`. Defaults to `keyBased`.
     */
    @JvmName("selcuhqfhhuxxsqc")
    public suspend fun authenticationType(`value`: Output) {
        this.authenticationType = value
    }

    /**
     * @param value Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`.
     */
    @JvmName("vxfaljftkkfsdari")
    public suspend fun batchFrequencyInSeconds(`value`: Output) {
        this.batchFrequencyInSeconds = value
    }

    /**
     * @param value The connection string for the endpoint. This attribute is mandatory and can only be specified when `authentication_type` is `keyBased`.
     */
    @JvmName("vvluttrqdmdgghie")
    public suspend fun connectionString(`value`: Output) {
        this.connectionString = value
    }

    /**
     * @param value The name of storage container in the storage account. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.
     */
    @JvmName("cmlcifrnlndfbvok")
    public suspend fun containerName(`value`: Output) {
        this.containerName = value
    }

    /**
     * @param value Encoding that is used to serialize messages to blobs. Supported values are `Avro`, `AvroDeflate` and `JSON`. Default value is `Avro`. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`. Changing this forces a new resource to be created.
     */
    @JvmName("tabfutjsglepbctd")
    public suspend fun encoding(`value`: Output) {
        this.encoding = value
    }

    /**
     * @param value URI of the Service Bus or Event Hubs Namespace endpoint. This attribute can only be specified and is mandatory when `authentication_type` is `identityBased` for endpoint type `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
     */
    @JvmName("lsunwfxvgsuxiwgc")
    public suspend fun endpointUri(`value`: Output) {
        this.endpointUri = value
    }

    /**
     * @param value Name of the Service Bus Queue/Topic or Event Hub. This attribute can only be specified and is mandatory when `authentication_type` is `identityBased` for endpoint type `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
     */
    @JvmName("araqdssncridumej")
    public suspend fun entityPath(`value`: Output) {
        this.entityPath = value
    }

    /**
     * @param value File name format for the blob. All parameters are mandatory but can be reordered. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`. Defaults to `{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}`.
     */
    @JvmName("jcsptsrhallhoytx")
    public suspend fun fileNameFormat(`value`: Output) {
        this.fileNameFormat = value
    }

    /**
     * @param value The ID of the User Managed Identity used to authenticate against the endpoint.
     * > **NOTE:** `identity_id` can only be specified when `authentication_type` is `identityBased`. It must be one of the `identity_ids` of the IoT Hub. If `identity_id` is omitted when `authentication_type` is `identityBased`, then the System-Assigned Managed Identity of the IoT Hub will be used.
     * > **NOTE:** An IoT Hub can only be updated to use the System-Assigned Managed Identity for `endpoint` since it is not possible to grant access to the endpoint until after creation. The extracted resources `azurerm_iothub_endpoint_*` can be used to configure Endpoints with the IoT Hub's System-Assigned Managed Identity without the need for an update.
     */
    @JvmName("xmxtkbryusoriysl")
    public suspend fun identityId(`value`: Output) {
        this.identityId = value
    }

    /**
     * @param value Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB). This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`.
     */
    @JvmName("jbrvxeoouchkifuk")
    public suspend fun maxChunkSizeInBytes(`value`: Output) {
        this.maxChunkSizeInBytes = value
    }

    /**
     * @param value The name of the endpoint. The name must be unique across endpoint types. The following names are reserved: `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.
     */
    @JvmName("wtmmllfywymwqvhl")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The resource group in which the endpoint will be created.
     */
    @JvmName("kamncfkcjfelwrlp")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The type of the endpoint. Possible values are `AzureIotHub.StorageContainer`, `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
     */
    @JvmName("pjarlpxpdusextmu")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value The type used to authenticate against the endpoint. Possible values are `keyBased` and `identityBased`. Defaults to `keyBased`.
     */
    @JvmName("amdgsvaovckvrljq")
    public suspend fun authenticationType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`.
     */
    @JvmName("vorbbykysxqyvrnu")
    public suspend fun batchFrequencyInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.batchFrequencyInSeconds = mapped
    }

    /**
     * @param value The connection string for the endpoint. This attribute is mandatory and can only be specified when `authentication_type` is `keyBased`.
     */
    @JvmName("kqlloboogerxteal")
    public suspend fun connectionString(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connectionString = mapped
    }

    /**
     * @param value The name of storage container in the storage account. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.
     */
    @JvmName("dnyrikclcrbwuesx")
    public suspend fun containerName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.containerName = mapped
    }

    /**
     * @param value Encoding that is used to serialize messages to blobs. Supported values are `Avro`, `AvroDeflate` and `JSON`. Default value is `Avro`. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`. Changing this forces a new resource to be created.
     */
    @JvmName("wrcphgewdkuerkso")
    public suspend fun encoding(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encoding = mapped
    }

    /**
     * @param value URI of the Service Bus or Event Hubs Namespace endpoint. This attribute can only be specified and is mandatory when `authentication_type` is `identityBased` for endpoint type `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
     */
    @JvmName("hhrawnppsyscqowy")
    public suspend fun endpointUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.endpointUri = mapped
    }

    /**
     * @param value Name of the Service Bus Queue/Topic or Event Hub. This attribute can only be specified and is mandatory when `authentication_type` is `identityBased` for endpoint type `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
     */
    @JvmName("xvnvukrfpsvthsry")
    public suspend fun entityPath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.entityPath = mapped
    }

    /**
     * @param value File name format for the blob. All parameters are mandatory but can be reordered. This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`. Defaults to `{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}`.
     */
    @JvmName("fqngomyukqkoptun")
    public suspend fun fileNameFormat(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileNameFormat = mapped
    }

    /**
     * @param value The ID of the User Managed Identity used to authenticate against the endpoint.
     * > **NOTE:** `identity_id` can only be specified when `authentication_type` is `identityBased`. It must be one of the `identity_ids` of the IoT Hub. If `identity_id` is omitted when `authentication_type` is `identityBased`, then the System-Assigned Managed Identity of the IoT Hub will be used.
     * > **NOTE:** An IoT Hub can only be updated to use the System-Assigned Managed Identity for `endpoint` since it is not possible to grant access to the endpoint until after creation. The extracted resources `azurerm_iothub_endpoint_*` can be used to configure Endpoints with the IoT Hub's System-Assigned Managed Identity without the need for an update.
     */
    @JvmName("dkocjafgsvsqdust")
    public suspend fun identityId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identityId = mapped
    }

    /**
     * @param value Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB). This attribute is applicable for endpoint type `AzureIotHub.StorageContainer`.
     */
    @JvmName("lqekkshbgirxnlrh")
    public suspend fun maxChunkSizeInBytes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxChunkSizeInBytes = mapped
    }

    /**
     * @param value The name of the endpoint. The name must be unique across endpoint types. The following names are reserved: `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.
     */
    @JvmName("muaycyfyseiilehf")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The resource group in which the endpoint will be created.
     */
    @JvmName("akkuajgnxvcufsoi")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The type of the endpoint. Possible values are `AzureIotHub.StorageContainer`, `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.
     */
    @JvmName("pcghqckphayplvox")
    public suspend fun type(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): IoTHubEndpointArgs = IoTHubEndpointArgs(
        authenticationType = authenticationType,
        batchFrequencyInSeconds = batchFrequencyInSeconds,
        connectionString = connectionString,
        containerName = containerName,
        encoding = encoding,
        endpointUri = endpointUri,
        entityPath = entityPath,
        fileNameFormat = fileNameFormat,
        identityId = identityId,
        maxChunkSizeInBytes = maxChunkSizeInBytes,
        name = name ?: throw PulumiNullFieldException("name"),
        resourceGroupName = resourceGroupName,
        type = type ?: throw PulumiNullFieldException("type"),
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy