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

com.pulumi.azurenative.devices.kotlin.inputs.RoutingCosmosDBSqlApiPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.devices.kotlin.inputs

import com.pulumi.azurenative.devices.inputs.RoutingCosmosDBSqlApiPropertiesArgs.builder
import com.pulumi.azurenative.devices.kotlin.enums.AuthenticationType
import com.pulumi.core.Either
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 com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * The properties related to a cosmos DB sql collection endpoint.
 * @property authenticationType Method used to authenticate against the cosmos DB sql collection endpoint
 * @property collectionName The name of the cosmos DB sql collection in the cosmos DB database.
 * @property databaseName The name of the cosmos DB database in the cosmos DB account.
 * @property endpointUri The url of the cosmos DB account. It must include the protocol https://
 * @property id Id of the cosmos DB sql collection endpoint
 * @property identity Managed identity properties of routing cosmos DB collection endpoint.
 * @property name The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.
 * @property partitionKeyName The name of the partition key associated with this cosmos DB sql collection if one exists. This is an optional parameter.
 * @property partitionKeyTemplate The template for generating a synthetic partition key value for use with this cosmos DB sql collection. The template must include at least one of the following placeholders: {iothub}, {deviceid}, {DD}, {MM}, and {YYYY}. Any one placeholder may be specified at most once, but order and non-placeholder components are arbitrary. This parameter is only required if PartitionKeyName is specified.
 * @property primaryKey The primary key of the cosmos DB account.
 * @property resourceGroup The name of the resource group of the cosmos DB account.
 * @property secondaryKey The secondary key of the cosmos DB account.
 * @property subscriptionId The subscription identifier of the cosmos DB account.
 */
public data class RoutingCosmosDBSqlApiPropertiesArgs(
    public val authenticationType: Output>? = null,
    public val collectionName: Output,
    public val databaseName: Output,
    public val endpointUri: Output,
    public val id: Output? = null,
    public val identity: Output? = null,
    public val name: Output,
    public val partitionKeyName: Output? = null,
    public val partitionKeyTemplate: Output? = null,
    public val primaryKey: Output? = null,
    public val resourceGroup: Output? = null,
    public val secondaryKey: Output? = null,
    public val subscriptionId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.devices.inputs.RoutingCosmosDBSqlApiPropertiesArgs =
        com.pulumi.azurenative.devices.inputs.RoutingCosmosDBSqlApiPropertiesArgs.builder()
            .authenticationType(
                authenticationType?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .collectionName(collectionName.applyValue({ args0 -> args0 }))
            .databaseName(databaseName.applyValue({ args0 -> args0 }))
            .endpointUri(endpointUri.applyValue({ args0 -> args0 }))
            .id(id?.applyValue({ args0 -> args0 }))
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .name(name.applyValue({ args0 -> args0 }))
            .partitionKeyName(partitionKeyName?.applyValue({ args0 -> args0 }))
            .partitionKeyTemplate(partitionKeyTemplate?.applyValue({ args0 -> args0 }))
            .primaryKey(primaryKey?.applyValue({ args0 -> args0 }))
            .resourceGroup(resourceGroup?.applyValue({ args0 -> args0 }))
            .secondaryKey(secondaryKey?.applyValue({ args0 -> args0 }))
            .subscriptionId(subscriptionId?.applyValue({ args0 -> args0 })).build()
}

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

    private var collectionName: Output? = null

    private var databaseName: Output? = null

    private var endpointUri: Output? = null

    private var id: Output? = null

    private var identity: Output? = null

    private var name: Output? = null

    private var partitionKeyName: Output? = null

    private var partitionKeyTemplate: Output? = null

    private var primaryKey: Output? = null

    private var resourceGroup: Output? = null

    private var secondaryKey: Output? = null

    private var subscriptionId: Output? = null

    /**
     * @param value Method used to authenticate against the cosmos DB sql collection endpoint
     */
    @JvmName("cmgrvkikbeshciyy")
    public suspend fun authenticationType(`value`: Output>) {
        this.authenticationType = value
    }

    /**
     * @param value The name of the cosmos DB sql collection in the cosmos DB database.
     */
    @JvmName("jxlmwvcoaaltmemo")
    public suspend fun collectionName(`value`: Output) {
        this.collectionName = value
    }

    /**
     * @param value The name of the cosmos DB database in the cosmos DB account.
     */
    @JvmName("bbmljryfkngplaix")
    public suspend fun databaseName(`value`: Output) {
        this.databaseName = value
    }

    /**
     * @param value The url of the cosmos DB account. It must include the protocol https://
     */
    @JvmName("dvrgwvdqbomuqwiu")
    public suspend fun endpointUri(`value`: Output) {
        this.endpointUri = value
    }

    /**
     * @param value Id of the cosmos DB sql collection endpoint
     */
    @JvmName("axsfaqwhhxbbvpvt")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value Managed identity properties of routing cosmos DB collection endpoint.
     */
    @JvmName("anoqkjjatbllrsvr")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.
     */
    @JvmName("incwmfblhuwyfnlq")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The name of the partition key associated with this cosmos DB sql collection if one exists. This is an optional parameter.
     */
    @JvmName("ovaquebmabprlldy")
    public suspend fun partitionKeyName(`value`: Output) {
        this.partitionKeyName = value
    }

    /**
     * @param value The template for generating a synthetic partition key value for use with this cosmos DB sql collection. The template must include at least one of the following placeholders: {iothub}, {deviceid}, {DD}, {MM}, and {YYYY}. Any one placeholder may be specified at most once, but order and non-placeholder components are arbitrary. This parameter is only required if PartitionKeyName is specified.
     */
    @JvmName("gmgebmrlyeymicfr")
    public suspend fun partitionKeyTemplate(`value`: Output) {
        this.partitionKeyTemplate = value
    }

    /**
     * @param value The primary key of the cosmos DB account.
     */
    @JvmName("hllpbmvthniwmrpy")
    public suspend fun primaryKey(`value`: Output) {
        this.primaryKey = value
    }

    /**
     * @param value The name of the resource group of the cosmos DB account.
     */
    @JvmName("yohskmefdstjyslr")
    public suspend fun resourceGroup(`value`: Output) {
        this.resourceGroup = value
    }

    /**
     * @param value The secondary key of the cosmos DB account.
     */
    @JvmName("daupwvxrpaypnmvh")
    public suspend fun secondaryKey(`value`: Output) {
        this.secondaryKey = value
    }

    /**
     * @param value The subscription identifier of the cosmos DB account.
     */
    @JvmName("kqxkjgrkrqinmowk")
    public suspend fun subscriptionId(`value`: Output) {
        this.subscriptionId = value
    }

    /**
     * @param value Method used to authenticate against the cosmos DB sql collection endpoint
     */
    @JvmName("oqxoaoisqbjmgivr")
    public suspend fun authenticationType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Method used to authenticate against the cosmos DB sql collection endpoint
     */
    @JvmName("nwcyeiydcsxcpkru")
    public fun authenticationType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Method used to authenticate against the cosmos DB sql collection endpoint
     */
    @JvmName("jougkgiuvxpywece")
    public fun authenticationType(`value`: AuthenticationType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value The name of the cosmos DB sql collection in the cosmos DB database.
     */
    @JvmName("uiannjeatxtqdtin")
    public suspend fun collectionName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.collectionName = mapped
    }

    /**
     * @param value The name of the cosmos DB database in the cosmos DB account.
     */
    @JvmName("ifjdyygsgjiybhpo")
    public suspend fun databaseName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.databaseName = mapped
    }

    /**
     * @param value The url of the cosmos DB account. It must include the protocol https://
     */
    @JvmName("jkedkaqswadjjdxd")
    public suspend fun endpointUri(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.endpointUri = mapped
    }

    /**
     * @param value Id of the cosmos DB sql collection endpoint
     */
    @JvmName("ngswrqeojdrtpcmj")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value Managed identity properties of routing cosmos DB collection endpoint.
     */
    @JvmName("tlvxrrmdmemvfyhd")
    public suspend fun identity(`value`: ManagedIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument Managed identity properties of routing cosmos DB collection endpoint.
     */
    @JvmName("hgqeckmxtrbhiexp")
    public suspend fun identity(argument: suspend ManagedIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = ManagedIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.
     */
    @JvmName("cmuaevugcdeapoar")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The name of the partition key associated with this cosmos DB sql collection if one exists. This is an optional parameter.
     */
    @JvmName("gvhqpmpiavthdmtw")
    public suspend fun partitionKeyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.partitionKeyName = mapped
    }

    /**
     * @param value The template for generating a synthetic partition key value for use with this cosmos DB sql collection. The template must include at least one of the following placeholders: {iothub}, {deviceid}, {DD}, {MM}, and {YYYY}. Any one placeholder may be specified at most once, but order and non-placeholder components are arbitrary. This parameter is only required if PartitionKeyName is specified.
     */
    @JvmName("jsecekdalfybocbp")
    public suspend fun partitionKeyTemplate(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.partitionKeyTemplate = mapped
    }

    /**
     * @param value The primary key of the cosmos DB account.
     */
    @JvmName("toyubdqyhflbchoj")
    public suspend fun primaryKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.primaryKey = mapped
    }

    /**
     * @param value The name of the resource group of the cosmos DB account.
     */
    @JvmName("sgeyaityxhdjcclw")
    public suspend fun resourceGroup(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroup = mapped
    }

    /**
     * @param value The secondary key of the cosmos DB account.
     */
    @JvmName("mcrpoifpkweproyw")
    public suspend fun secondaryKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secondaryKey = mapped
    }

    /**
     * @param value The subscription identifier of the cosmos DB account.
     */
    @JvmName("iqmbcslhinyfbfbu")
    public suspend fun subscriptionId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subscriptionId = mapped
    }

    internal fun build(): RoutingCosmosDBSqlApiPropertiesArgs = RoutingCosmosDBSqlApiPropertiesArgs(
        authenticationType = authenticationType,
        collectionName = collectionName ?: throw PulumiNullFieldException("collectionName"),
        databaseName = databaseName ?: throw PulumiNullFieldException("databaseName"),
        endpointUri = endpointUri ?: throw PulumiNullFieldException("endpointUri"),
        id = id,
        identity = identity,
        name = name ?: throw PulumiNullFieldException("name"),
        partitionKeyName = partitionKeyName,
        partitionKeyTemplate = partitionKeyTemplate,
        primaryKey = primaryKey,
        resourceGroup = resourceGroup,
        secondaryKey = secondaryKey,
        subscriptionId = subscriptionId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy