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

com.pulumi.awsnative.redshift.kotlin.EndpointAccessArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.redshift.kotlin

import com.pulumi.awsnative.redshift.EndpointAccessArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for a Redshift-managed VPC endpoint.
 * @property clusterIdentifier A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. All alphabetical characters must be lower case, no hypens at the end, no two consecutive hyphens. Cluster name should be unique for all clusters within an AWS account
 * @property endpointName The name of the endpoint.
 * @property resourceOwner The AWS account ID of the owner of the cluster.
 * @property subnetGroupName The subnet group name where Amazon Redshift chooses to deploy the endpoint.
 * @property vpcSecurityGroupIds A list of vpc security group ids to apply to the created endpoint access.
 */
public data class EndpointAccessArgs(
    public val clusterIdentifier: Output? = null,
    public val endpointName: Output? = null,
    public val resourceOwner: Output? = null,
    public val subnetGroupName: Output? = null,
    public val vpcSecurityGroupIds: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.redshift.EndpointAccessArgs =
        com.pulumi.awsnative.redshift.EndpointAccessArgs.builder()
            .clusterIdentifier(clusterIdentifier?.applyValue({ args0 -> args0 }))
            .endpointName(endpointName?.applyValue({ args0 -> args0 }))
            .resourceOwner(resourceOwner?.applyValue({ args0 -> args0 }))
            .subnetGroupName(subnetGroupName?.applyValue({ args0 -> args0 }))
            .vpcSecurityGroupIds(
                vpcSecurityGroupIds?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            ).build()
}

/**
 * Builder for [EndpointAccessArgs].
 */
@PulumiTagMarker
public class EndpointAccessArgsBuilder internal constructor() {
    private var clusterIdentifier: Output? = null

    private var endpointName: Output? = null

    private var resourceOwner: Output? = null

    private var subnetGroupName: Output? = null

    private var vpcSecurityGroupIds: Output>? = null

    /**
     * @param value A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. All alphabetical characters must be lower case, no hypens at the end, no two consecutive hyphens. Cluster name should be unique for all clusters within an AWS account
     */
    @JvmName("ekhvtnrkoclsbiow")
    public suspend fun clusterIdentifier(`value`: Output) {
        this.clusterIdentifier = value
    }

    /**
     * @param value The name of the endpoint.
     */
    @JvmName("onacrxalckcqmuyo")
    public suspend fun endpointName(`value`: Output) {
        this.endpointName = value
    }

    /**
     * @param value The AWS account ID of the owner of the cluster.
     */
    @JvmName("ytvvdwxgmxpfxmod")
    public suspend fun resourceOwner(`value`: Output) {
        this.resourceOwner = value
    }

    /**
     * @param value The subnet group name where Amazon Redshift chooses to deploy the endpoint.
     */
    @JvmName("clfcpfaofyhtbxnn")
    public suspend fun subnetGroupName(`value`: Output) {
        this.subnetGroupName = value
    }

    /**
     * @param value A list of vpc security group ids to apply to the created endpoint access.
     */
    @JvmName("qdwckxgixwlojgtv")
    public suspend fun vpcSecurityGroupIds(`value`: Output>) {
        this.vpcSecurityGroupIds = value
    }

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

    /**
     * @param values A list of vpc security group ids to apply to the created endpoint access.
     */
    @JvmName("hleyygvmruanlugu")
    public suspend fun vpcSecurityGroupIds(values: List>) {
        this.vpcSecurityGroupIds = Output.all(values)
    }

    /**
     * @param value A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. All alphabetical characters must be lower case, no hypens at the end, no two consecutive hyphens. Cluster name should be unique for all clusters within an AWS account
     */
    @JvmName("ttenbaraxqulmyia")
    public suspend fun clusterIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusterIdentifier = mapped
    }

    /**
     * @param value The name of the endpoint.
     */
    @JvmName("wppwyvmkynhqxndt")
    public suspend fun endpointName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.endpointName = mapped
    }

    /**
     * @param value The AWS account ID of the owner of the cluster.
     */
    @JvmName("wqanynfuqbxknitu")
    public suspend fun resourceOwner(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceOwner = mapped
    }

    /**
     * @param value The subnet group name where Amazon Redshift chooses to deploy the endpoint.
     */
    @JvmName("tdoynwrjovjtayfj")
    public suspend fun subnetGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetGroupName = mapped
    }

    /**
     * @param value A list of vpc security group ids to apply to the created endpoint access.
     */
    @JvmName("rydfkyfpihoargov")
    public suspend fun vpcSecurityGroupIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcSecurityGroupIds = mapped
    }

    /**
     * @param values A list of vpc security group ids to apply to the created endpoint access.
     */
    @JvmName("etghchkdoilybter")
    public suspend fun vpcSecurityGroupIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vpcSecurityGroupIds = mapped
    }

    internal fun build(): EndpointAccessArgs = EndpointAccessArgs(
        clusterIdentifier = clusterIdentifier,
        endpointName = endpointName,
        resourceOwner = resourceOwner,
        subnetGroupName = subnetGroupName,
        vpcSecurityGroupIds = vpcSecurityGroupIds,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy