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

com.pulumi.awsnative.connect.kotlin.SecurityProfileArgs.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.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.connect.kotlin

import com.pulumi.awsnative.connect.SecurityProfileArgs.builder
import com.pulumi.awsnative.connect.kotlin.inputs.SecurityProfileApplicationArgs
import com.pulumi.awsnative.connect.kotlin.inputs.SecurityProfileApplicationArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.SecurityProfileTagArgs
import com.pulumi.awsnative.connect.kotlin.inputs.SecurityProfileTagArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::Connect::SecurityProfile
 * @property allowedAccessControlHierarchyGroupId The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.
 * @property allowedAccessControlTags The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
 * @property applications A list of third-party applications that the security profile will give access to.
 * @property description The description of the security profile.
 * @property hierarchyRestrictedResources The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect.
 * @property instanceArn The identifier of the Amazon Connect instance.
 * @property permissions Permissions assigned to the security profile.
 * @property securityProfileName The name of the security profile.
 * @property tagRestrictedResources The list of resources that a security profile applies tag restrictions to in Amazon Connect.
 * @property tags The tags used to organize, track, or control access for this resource.
 */
public data class SecurityProfileArgs(
    public val allowedAccessControlHierarchyGroupId: Output? = null,
    public val allowedAccessControlTags: Output>? = null,
    public val applications: Output>? = null,
    public val description: Output? = null,
    public val hierarchyRestrictedResources: Output>? = null,
    public val instanceArn: Output? = null,
    public val permissions: Output>? = null,
    public val securityProfileName: Output? = null,
    public val tagRestrictedResources: Output>? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.connect.SecurityProfileArgs =
        com.pulumi.awsnative.connect.SecurityProfileArgs.builder()
            .allowedAccessControlHierarchyGroupId(
                allowedAccessControlHierarchyGroupId?.applyValue({ args0 ->
                    args0
                }),
            )
            .allowedAccessControlTags(
                allowedAccessControlTags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .applications(
                applications?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .description(description?.applyValue({ args0 -> args0 }))
            .hierarchyRestrictedResources(
                hierarchyRestrictedResources?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .instanceArn(instanceArn?.applyValue({ args0 -> args0 }))
            .permissions(permissions?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .securityProfileName(securityProfileName?.applyValue({ args0 -> args0 }))
            .tagRestrictedResources(
                tagRestrictedResources?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [SecurityProfileArgs].
 */
@PulumiTagMarker
public class SecurityProfileArgsBuilder internal constructor() {
    private var allowedAccessControlHierarchyGroupId: Output? = null

    private var allowedAccessControlTags: Output>? = null

    private var applications: Output>? = null

    private var description: Output? = null

    private var hierarchyRestrictedResources: Output>? = null

    private var instanceArn: Output? = null

    private var permissions: Output>? = null

    private var securityProfileName: Output? = null

    private var tagRestrictedResources: Output>? = null

    private var tags: Output>? = null

    /**
     * @param value The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("ifcymibuogbyeqem")
    public suspend fun allowedAccessControlHierarchyGroupId(`value`: Output) {
        this.allowedAccessControlHierarchyGroupId = value
    }

    /**
     * @param value The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("bfcdrtbhtfcteyty")
    public suspend fun allowedAccessControlTags(`value`: Output>) {
        this.allowedAccessControlTags = value
    }

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

    /**
     * @param values The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("einjjjpqcrymllsl")
    public suspend fun allowedAccessControlTags(values: List>) {
        this.allowedAccessControlTags = Output.all(values)
    }

    /**
     * @param value A list of third-party applications that the security profile will give access to.
     */
    @JvmName("umxoxncltxiowwuv")
    public suspend fun applications(`value`: Output>) {
        this.applications = value
    }

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

    /**
     * @param values A list of third-party applications that the security profile will give access to.
     */
    @JvmName("uvxwfxuickswcunu")
    public suspend fun applications(values: List>) {
        this.applications = Output.all(values)
    }

    /**
     * @param value The description of the security profile.
     */
    @JvmName("xpsmxhiyvsgqfcoy")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect.
     */
    @JvmName("npcnbdxagqupycxp")
    public suspend fun hierarchyRestrictedResources(`value`: Output>) {
        this.hierarchyRestrictedResources = value
    }

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

    /**
     * @param values The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect.
     */
    @JvmName("sggltwpkshipiiib")
    public suspend fun hierarchyRestrictedResources(values: List>) {
        this.hierarchyRestrictedResources = Output.all(values)
    }

    /**
     * @param value The identifier of the Amazon Connect instance.
     */
    @JvmName("lhracqevkrgrjwgu")
    public suspend fun instanceArn(`value`: Output) {
        this.instanceArn = value
    }

    /**
     * @param value Permissions assigned to the security profile.
     */
    @JvmName("ocacdodwffjhfscc")
    public suspend fun permissions(`value`: Output>) {
        this.permissions = value
    }

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

    /**
     * @param values Permissions assigned to the security profile.
     */
    @JvmName("mtboufpdatygpmng")
    public suspend fun permissions(values: List>) {
        this.permissions = Output.all(values)
    }

    /**
     * @param value The name of the security profile.
     */
    @JvmName("rsbtfusjurvtrdxj")
    public suspend fun securityProfileName(`value`: Output) {
        this.securityProfileName = value
    }

    /**
     * @param value The list of resources that a security profile applies tag restrictions to in Amazon Connect.
     */
    @JvmName("npjoawvuvaasvdbp")
    public suspend fun tagRestrictedResources(`value`: Output>) {
        this.tagRestrictedResources = value
    }

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

    /**
     * @param values The list of resources that a security profile applies tag restrictions to in Amazon Connect.
     */
    @JvmName("aonadfmfvxynrtpd")
    public suspend fun tagRestrictedResources(values: List>) {
        this.tagRestrictedResources = Output.all(values)
    }

    /**
     * @param value The tags used to organize, track, or control access for this resource.
     */
    @JvmName("iexcbatcvovewthj")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The tags used to organize, track, or control access for this resource.
     */
    @JvmName("arhsqvqbkqwocrxd")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("jqmxsodboqchiomk")
    public suspend fun allowedAccessControlHierarchyGroupId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedAccessControlHierarchyGroupId = mapped
    }

    /**
     * @param value The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("qgbreaxonsbuugdr")
    public suspend fun allowedAccessControlTags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedAccessControlTags = mapped
    }

    /**
     * @param argument The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("pghlldgdbffkysjw")
    public suspend fun allowedAccessControlTags(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            SecurityProfileTagArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.allowedAccessControlTags = mapped
    }

    /**
     * @param argument The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("pgxpdcypuwmaoyhn")
    public suspend fun allowedAccessControlTags(vararg argument: suspend SecurityProfileTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            SecurityProfileTagArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.allowedAccessControlTags = mapped
    }

    /**
     * @param argument The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("agbpmsqigenvsopx")
    public suspend fun allowedAccessControlTags(argument: suspend SecurityProfileTagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(SecurityProfileTagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.allowedAccessControlTags = mapped
    }

    /**
     * @param values The list of tags that a security profile uses to restrict access to resources in Amazon Connect.
     */
    @JvmName("rysgiydbhoceictw")
    public suspend fun allowedAccessControlTags(vararg values: SecurityProfileTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedAccessControlTags = mapped
    }

    /**
     * @param value A list of third-party applications that the security profile will give access to.
     */
    @JvmName("tpypbulgobiewalp")
    public suspend fun applications(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applications = mapped
    }

    /**
     * @param argument A list of third-party applications that the security profile will give access to.
     */
    @JvmName("vdlfopjkgkeprfhw")
    public suspend fun applications(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            SecurityProfileApplicationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.applications = mapped
    }

    /**
     * @param argument A list of third-party applications that the security profile will give access to.
     */
    @JvmName("tcvynyoibecyhubu")
    public suspend fun applications(vararg argument: suspend SecurityProfileApplicationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            SecurityProfileApplicationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.applications = mapped
    }

    /**
     * @param argument A list of third-party applications that the security profile will give access to.
     */
    @JvmName("kgmrdngsbnmmjopk")
    public suspend fun applications(argument: suspend SecurityProfileApplicationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            SecurityProfileApplicationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.applications = mapped
    }

    /**
     * @param values A list of third-party applications that the security profile will give access to.
     */
    @JvmName("idldlacminrgkemc")
    public suspend fun applications(vararg values: SecurityProfileApplicationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.applications = mapped
    }

    /**
     * @param value The description of the security profile.
     */
    @JvmName("ghnmrskxniygynwl")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect.
     */
    @JvmName("yaithablajkalhjj")
    public suspend fun hierarchyRestrictedResources(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hierarchyRestrictedResources = mapped
    }

    /**
     * @param values The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect.
     */
    @JvmName("vmkpyifeyjigunnx")
    public suspend fun hierarchyRestrictedResources(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.hierarchyRestrictedResources = mapped
    }

    /**
     * @param value The identifier of the Amazon Connect instance.
     */
    @JvmName("kfodaclkfskfeeml")
    public suspend fun instanceArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceArn = mapped
    }

    /**
     * @param value Permissions assigned to the security profile.
     */
    @JvmName("vljukjdtdukfnfdd")
    public suspend fun permissions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permissions = mapped
    }

    /**
     * @param values Permissions assigned to the security profile.
     */
    @JvmName("usjtrlboaggrsssy")
    public suspend fun permissions(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permissions = mapped
    }

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

    /**
     * @param value The list of resources that a security profile applies tag restrictions to in Amazon Connect.
     */
    @JvmName("xvqugnvfwneltrky")
    public suspend fun tagRestrictedResources(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tagRestrictedResources = mapped
    }

    /**
     * @param values The list of resources that a security profile applies tag restrictions to in Amazon Connect.
     */
    @JvmName("jdfagdoncjatjhsh")
    public suspend fun tagRestrictedResources(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tagRestrictedResources = mapped
    }

    /**
     * @param value The tags used to organize, track, or control access for this resource.
     */
    @JvmName("koyjcnmwsvloineq")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags used to organize, track, or control access for this resource.
     */
    @JvmName("yhkfboixfagptgyf")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags used to organize, track, or control access for this resource.
     */
    @JvmName("drgvtrwxwotndhmg")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags used to organize, track, or control access for this resource.
     */
    @JvmName("vgoiwklpqvraihov")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The tags used to organize, track, or control access for this resource.
     */
    @JvmName("mdccvedapsptvhgl")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): SecurityProfileArgs = SecurityProfileArgs(
        allowedAccessControlHierarchyGroupId = allowedAccessControlHierarchyGroupId,
        allowedAccessControlTags = allowedAccessControlTags,
        applications = applications,
        description = description,
        hierarchyRestrictedResources = hierarchyRestrictedResources,
        instanceArn = instanceArn,
        permissions = permissions,
        securityProfileName = securityProfileName,
        tagRestrictedResources = tagRestrictedResources,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy