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

com.pulumi.azure.privatelink.kotlin.inputs.EndpointPrivateServiceConnectionArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azure.privatelink.kotlin.inputs

import com.pulumi.azure.privatelink.inputs.EndpointPrivateServiceConnectionArgs.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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property isManualConnection Does the Private Endpoint require Manual Approval from the remote resource owner? Changing this forces a new resource to be created.
 * > **NOTE:** If you are trying to connect the Private Endpoint to a remote resource without having the correct RBAC permissions on the remote resource set this value to `true`.
 * @property name Specifies the Name of the Private Service Connection. Changing this forces a new resource to be created.
 * @property privateConnectionResourceAlias The Service Alias of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created.
 * @property privateConnectionResourceId The ID of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created. For a web app or function app slot, the parent web app should be used in this field instead of a reference to the slot itself.
 * @property privateIpAddress (Required) The static IP address set by this configuration. It is recommended to use the private IP address exported in the `private_service_connection` block to obtain the address associated with the private endpoint.
 * @property requestMessage A message passed to the owner of the remote resource when the private endpoint attempts to establish the connection to the remote resource. The provider allows a maximum request message length of `140` characters, however the request message maximum length is dependent on the service the private endpoint is connected to. Only valid if `is_manual_connection` is set to `true`.
 * > **NOTE:** When connected to an SQL resource the `request_message` maximum length is `128`.
 * @property subresourceNames A list of subresource names which the Private Endpoint is able to connect to. `subresource_names` corresponds to `group_id`. Possible values are detailed in the product [documentation](https://docs.microsoft.com/azure/private-link/private-endpoint-overview#private-link-resource) in the `Subresources` column. Changing this forces a new resource to be created.
 * > **NOTE:** Some resource types (such as Storage Account) only support 1 subresource per private endpoint.
 * > **NOTE:** For most Private Links one or more `subresource_names` will need to be specified, please see the linked documentation for details.
 */
public data class EndpointPrivateServiceConnectionArgs(
    public val isManualConnection: Output,
    public val name: Output,
    public val privateConnectionResourceAlias: Output? = null,
    public val privateConnectionResourceId: Output? = null,
    public val privateIpAddress: Output? = null,
    public val requestMessage: Output? = null,
    public val subresourceNames: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.privatelink.inputs.EndpointPrivateServiceConnectionArgs =
        com.pulumi.azure.privatelink.inputs.EndpointPrivateServiceConnectionArgs.builder()
            .isManualConnection(isManualConnection.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .privateConnectionResourceAlias(privateConnectionResourceAlias?.applyValue({ args0 -> args0 }))
            .privateConnectionResourceId(privateConnectionResourceId?.applyValue({ args0 -> args0 }))
            .privateIpAddress(privateIpAddress?.applyValue({ args0 -> args0 }))
            .requestMessage(requestMessage?.applyValue({ args0 -> args0 }))
            .subresourceNames(subresourceNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [EndpointPrivateServiceConnectionArgs].
 */
@PulumiTagMarker
public class EndpointPrivateServiceConnectionArgsBuilder internal constructor() {
    private var isManualConnection: Output? = null

    private var name: Output? = null

    private var privateConnectionResourceAlias: Output? = null

    private var privateConnectionResourceId: Output? = null

    private var privateIpAddress: Output? = null

    private var requestMessage: Output? = null

    private var subresourceNames: Output>? = null

    /**
     * @param value Does the Private Endpoint require Manual Approval from the remote resource owner? Changing this forces a new resource to be created.
     * > **NOTE:** If you are trying to connect the Private Endpoint to a remote resource without having the correct RBAC permissions on the remote resource set this value to `true`.
     */
    @JvmName("ldbkmelgjmowsuok")
    public suspend fun isManualConnection(`value`: Output) {
        this.isManualConnection = value
    }

    /**
     * @param value Specifies the Name of the Private Service Connection. Changing this forces a new resource to be created.
     */
    @JvmName("cuvovlenacynxgac")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The Service Alias of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created.
     */
    @JvmName("ywiaybkcpcmysfiq")
    public suspend fun privateConnectionResourceAlias(`value`: Output) {
        this.privateConnectionResourceAlias = value
    }

    /**
     * @param value The ID of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created. For a web app or function app slot, the parent web app should be used in this field instead of a reference to the slot itself.
     */
    @JvmName("piwfsbjhtgqfivby")
    public suspend fun privateConnectionResourceId(`value`: Output) {
        this.privateConnectionResourceId = value
    }

    /**
     * @param value (Required) The static IP address set by this configuration. It is recommended to use the private IP address exported in the `private_service_connection` block to obtain the address associated with the private endpoint.
     */
    @JvmName("yhkdcsdfncltlltm")
    public suspend fun privateIpAddress(`value`: Output) {
        this.privateIpAddress = value
    }

    /**
     * @param value A message passed to the owner of the remote resource when the private endpoint attempts to establish the connection to the remote resource. The provider allows a maximum request message length of `140` characters, however the request message maximum length is dependent on the service the private endpoint is connected to. Only valid if `is_manual_connection` is set to `true`.
     * > **NOTE:** When connected to an SQL resource the `request_message` maximum length is `128`.
     */
    @JvmName("gpbdahxgphphyuih")
    public suspend fun requestMessage(`value`: Output) {
        this.requestMessage = value
    }

    /**
     * @param value A list of subresource names which the Private Endpoint is able to connect to. `subresource_names` corresponds to `group_id`. Possible values are detailed in the product [documentation](https://docs.microsoft.com/azure/private-link/private-endpoint-overview#private-link-resource) in the `Subresources` column. Changing this forces a new resource to be created.
     * > **NOTE:** Some resource types (such as Storage Account) only support 1 subresource per private endpoint.
     * > **NOTE:** For most Private Links one or more `subresource_names` will need to be specified, please see the linked documentation for details.
     */
    @JvmName("owcydrvkbjodlslc")
    public suspend fun subresourceNames(`value`: Output>) {
        this.subresourceNames = value
    }

    @JvmName("qcgsxdqoyqqghmfc")
    public suspend fun subresourceNames(vararg values: Output) {
        this.subresourceNames = Output.all(values.asList())
    }

    /**
     * @param values A list of subresource names which the Private Endpoint is able to connect to. `subresource_names` corresponds to `group_id`. Possible values are detailed in the product [documentation](https://docs.microsoft.com/azure/private-link/private-endpoint-overview#private-link-resource) in the `Subresources` column. Changing this forces a new resource to be created.
     * > **NOTE:** Some resource types (such as Storage Account) only support 1 subresource per private endpoint.
     * > **NOTE:** For most Private Links one or more `subresource_names` will need to be specified, please see the linked documentation for details.
     */
    @JvmName("ucsykbgtixwsopit")
    public suspend fun subresourceNames(values: List>) {
        this.subresourceNames = Output.all(values)
    }

    /**
     * @param value Does the Private Endpoint require Manual Approval from the remote resource owner? Changing this forces a new resource to be created.
     * > **NOTE:** If you are trying to connect the Private Endpoint to a remote resource without having the correct RBAC permissions on the remote resource set this value to `true`.
     */
    @JvmName("ofdekkwaibkxdltu")
    public suspend fun isManualConnection(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.isManualConnection = mapped
    }

    /**
     * @param value Specifies the Name of the Private Service Connection. Changing this forces a new resource to be created.
     */
    @JvmName("kkdvdqcgxcgrjaxg")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The Service Alias of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created.
     */
    @JvmName("sgpdfemeixxnyrkx")
    public suspend fun privateConnectionResourceAlias(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateConnectionResourceAlias = mapped
    }

    /**
     * @param value The ID of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created. For a web app or function app slot, the parent web app should be used in this field instead of a reference to the slot itself.
     */
    @JvmName("ojlsogpqtvjyhbgq")
    public suspend fun privateConnectionResourceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateConnectionResourceId = mapped
    }

    /**
     * @param value (Required) The static IP address set by this configuration. It is recommended to use the private IP address exported in the `private_service_connection` block to obtain the address associated with the private endpoint.
     */
    @JvmName("qlitgrackmvvskie")
    public suspend fun privateIpAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateIpAddress = mapped
    }

    /**
     * @param value A message passed to the owner of the remote resource when the private endpoint attempts to establish the connection to the remote resource. The provider allows a maximum request message length of `140` characters, however the request message maximum length is dependent on the service the private endpoint is connected to. Only valid if `is_manual_connection` is set to `true`.
     * > **NOTE:** When connected to an SQL resource the `request_message` maximum length is `128`.
     */
    @JvmName("epcrdfpqpsmekaya")
    public suspend fun requestMessage(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestMessage = mapped
    }

    /**
     * @param value A list of subresource names which the Private Endpoint is able to connect to. `subresource_names` corresponds to `group_id`. Possible values are detailed in the product [documentation](https://docs.microsoft.com/azure/private-link/private-endpoint-overview#private-link-resource) in the `Subresources` column. Changing this forces a new resource to be created.
     * > **NOTE:** Some resource types (such as Storage Account) only support 1 subresource per private endpoint.
     * > **NOTE:** For most Private Links one or more `subresource_names` will need to be specified, please see the linked documentation for details.
     */
    @JvmName("jfqenrymsqtepcbh")
    public suspend fun subresourceNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subresourceNames = mapped
    }

    /**
     * @param values A list of subresource names which the Private Endpoint is able to connect to. `subresource_names` corresponds to `group_id`. Possible values are detailed in the product [documentation](https://docs.microsoft.com/azure/private-link/private-endpoint-overview#private-link-resource) in the `Subresources` column. Changing this forces a new resource to be created.
     * > **NOTE:** Some resource types (such as Storage Account) only support 1 subresource per private endpoint.
     * > **NOTE:** For most Private Links one or more `subresource_names` will need to be specified, please see the linked documentation for details.
     */
    @JvmName("fvhgxnwmdcpsplpl")
    public suspend fun subresourceNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.subresourceNames = mapped
    }

    internal fun build(): EndpointPrivateServiceConnectionArgs = EndpointPrivateServiceConnectionArgs(
        isManualConnection = isManualConnection ?: throw PulumiNullFieldException("isManualConnection"),
        name = name ?: throw PulumiNullFieldException("name"),
        privateConnectionResourceAlias = privateConnectionResourceAlias,
        privateConnectionResourceId = privateConnectionResourceId,
        privateIpAddress = privateIpAddress,
        requestMessage = requestMessage,
        subresourceNames = subresourceNames,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy