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

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

package com.pulumi.awsnative.grafana.kotlin

import com.pulumi.awsnative.grafana.WorkspaceArgs.builder
import com.pulumi.awsnative.grafana.kotlin.enums.WorkspaceAccountAccessType
import com.pulumi.awsnative.grafana.kotlin.enums.WorkspaceAuthenticationProviderTypes
import com.pulumi.awsnative.grafana.kotlin.enums.WorkspaceDataSourceType
import com.pulumi.awsnative.grafana.kotlin.enums.WorkspaceNotificationDestinationType
import com.pulumi.awsnative.grafana.kotlin.enums.WorkspacePermissionType
import com.pulumi.awsnative.grafana.kotlin.inputs.WorkspaceNetworkAccessControlArgs
import com.pulumi.awsnative.grafana.kotlin.inputs.WorkspaceNetworkAccessControlArgsBuilder
import com.pulumi.awsnative.grafana.kotlin.inputs.WorkspaceSamlConfigurationArgs
import com.pulumi.awsnative.grafana.kotlin.inputs.WorkspaceSamlConfigurationArgsBuilder
import com.pulumi.awsnative.grafana.kotlin.inputs.WorkspaceVpcConfigurationArgs
import com.pulumi.awsnative.grafana.kotlin.inputs.WorkspaceVpcConfigurationArgsBuilder
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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Definition of AWS::Grafana::Workspace Resource Type
 * @property accountAccessType Specifies whether the workspace can access AWS resources in this AWS account only, or whether it can also access AWS resources in other accounts in the same organization. If this is `ORGANIZATION` , the `OrganizationalUnits` parameter specifies which organizational units the workspace can access.
 * @property authenticationProviders List of authentication providers to enable.
 * @property clientToken A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.
 * @property dataSources List of data sources on the service managed IAM role.
 * @property description Description of a workspace.
 * @property grafanaVersion The version of Grafana to support in your workspace.
 * @property name The user friendly name of a workspace.
 * @property networkAccessControl The configuration settings for network access to your workspace.
 * @property notificationDestinations List of notification destinations on the customers service managed IAM role that the Grafana workspace can query.
 * @property organizationRoleName The name of an IAM role that already exists to use with AWS Organizations to access AWS data sources and notification channels in other accounts in an organization.
 * @property organizationalUnits List of Organizational Units containing AWS accounts the Grafana workspace can pull data from.
 * @property permissionType If this is `SERVICE_MANAGED` , and the workplace was created through the Amazon Managed Grafana console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use AWS data sources and notification channels.
 * If this is `CUSTOMER_MANAGED` , you must manage those roles and permissions yourself.
 * If you are working with a workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other AWS accounts in the organization, this parameter must be set to `CUSTOMER_MANAGED` .
 * For more information about converting between customer and service managed, see [Managing permissions for data sources and notification channels](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-datasource-and-notification.html) . For more information about the roles and permissions that must be managed for customer managed workspaces, see [Amazon Managed Grafana permissions and policies for AWS data sources and notification channels](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html)
 * @property pluginAdminEnabled Allow workspace admins to install plugins
 * @property roleArn IAM Role that will be used to grant the Grafana workspace access to a customers AWS resources.
 * @property samlConfiguration If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the `Admin` and `Editor` roles in the workspace.
 * @property stackSetName The name of the AWS CloudFormation stack set to use to generate IAM roles to be used for this workspace.
 * @property vpcConfiguration The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.
 * > Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).
 */
public data class WorkspaceArgs(
    public val accountAccessType: Output? = null,
    public val authenticationProviders: Output>? = null,
    public val clientToken: Output? = null,
    public val dataSources: Output>? = null,
    public val description: Output? = null,
    public val grafanaVersion: Output? = null,
    public val name: Output? = null,
    public val networkAccessControl: Output? = null,
    public val notificationDestinations: Output>? = null,
    public val organizationRoleName: Output? = null,
    public val organizationalUnits: Output>? = null,
    public val permissionType: Output? = null,
    public val pluginAdminEnabled: Output? = null,
    public val roleArn: Output? = null,
    public val samlConfiguration: Output? = null,
    public val stackSetName: Output? = null,
    public val vpcConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.grafana.WorkspaceArgs =
        com.pulumi.awsnative.grafana.WorkspaceArgs.builder()
            .accountAccessType(accountAccessType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .authenticationProviders(
                authenticationProviders?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .clientToken(clientToken?.applyValue({ args0 -> args0 }))
            .dataSources(
                dataSources?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .description(description?.applyValue({ args0 -> args0 }))
            .grafanaVersion(grafanaVersion?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .networkAccessControl(
                networkAccessControl?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .notificationDestinations(
                notificationDestinations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .organizationRoleName(organizationRoleName?.applyValue({ args0 -> args0 }))
            .organizationalUnits(organizationalUnits?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .permissionType(permissionType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .pluginAdminEnabled(pluginAdminEnabled?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .samlConfiguration(samlConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .stackSetName(stackSetName?.applyValue({ args0 -> args0 }))
            .vpcConfiguration(
                vpcConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [WorkspaceArgs].
 */
@PulumiTagMarker
public class WorkspaceArgsBuilder internal constructor() {
    private var accountAccessType: Output? = null

    private var authenticationProviders: Output>? = null

    private var clientToken: Output? = null

    private var dataSources: Output>? = null

    private var description: Output? = null

    private var grafanaVersion: Output? = null

    private var name: Output? = null

    private var networkAccessControl: Output? = null

    private var notificationDestinations: Output>? = null

    private var organizationRoleName: Output? = null

    private var organizationalUnits: Output>? = null

    private var permissionType: Output? = null

    private var pluginAdminEnabled: Output? = null

    private var roleArn: Output? = null

    private var samlConfiguration: Output? = null

    private var stackSetName: Output? = null

    private var vpcConfiguration: Output? = null

    /**
     * @param value Specifies whether the workspace can access AWS resources in this AWS account only, or whether it can also access AWS resources in other accounts in the same organization. If this is `ORGANIZATION` , the `OrganizationalUnits` parameter specifies which organizational units the workspace can access.
     */
    @JvmName("jkqwovscrlqowofo")
    public suspend fun accountAccessType(`value`: Output) {
        this.accountAccessType = value
    }

    /**
     * @param value List of authentication providers to enable.
     */
    @JvmName("ewnqjiyijbijbcfj")
    public suspend fun authenticationProviders(`value`: Output>) {
        this.authenticationProviders = value
    }

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

    /**
     * @param values List of authentication providers to enable.
     */
    @JvmName("rbpodxkucgyhxqqo")
    public suspend fun authenticationProviders(values: List>) {
        this.authenticationProviders = Output.all(values)
    }

    /**
     * @param value A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.
     */
    @JvmName("akyegdlwqqtshwvj")
    public suspend fun clientToken(`value`: Output) {
        this.clientToken = value
    }

    /**
     * @param value List of data sources on the service managed IAM role.
     */
    @JvmName("wipqtwckmaemvwja")
    public suspend fun dataSources(`value`: Output>) {
        this.dataSources = value
    }

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

    /**
     * @param values List of data sources on the service managed IAM role.
     */
    @JvmName("sqdfxcxoguqbnbsw")
    public suspend fun dataSources(values: List>) {
        this.dataSources = Output.all(values)
    }

    /**
     * @param value Description of a workspace.
     */
    @JvmName("fgjeppkrlqcapald")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The version of Grafana to support in your workspace.
     */
    @JvmName("duwvaghfcqrssaxt")
    public suspend fun grafanaVersion(`value`: Output) {
        this.grafanaVersion = value
    }

    /**
     * @param value The user friendly name of a workspace.
     */
    @JvmName("rkfcptqaqjssarax")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The configuration settings for network access to your workspace.
     */
    @JvmName("mxkwsmlliinyisgm")
    public suspend fun networkAccessControl(`value`: Output) {
        this.networkAccessControl = value
    }

    /**
     * @param value List of notification destinations on the customers service managed IAM role that the Grafana workspace can query.
     */
    @JvmName("gertxuadsygrrutp")
    public suspend fun notificationDestinations(`value`: Output>) {
        this.notificationDestinations = value
    }

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

    /**
     * @param values List of notification destinations on the customers service managed IAM role that the Grafana workspace can query.
     */
    @JvmName("ylryttotiecaduwo")
    public suspend fun notificationDestinations(values: List>) {
        this.notificationDestinations = Output.all(values)
    }

    /**
     * @param value The name of an IAM role that already exists to use with AWS Organizations to access AWS data sources and notification channels in other accounts in an organization.
     */
    @JvmName("kpphujxxsliccqfn")
    public suspend fun organizationRoleName(`value`: Output) {
        this.organizationRoleName = value
    }

    /**
     * @param value List of Organizational Units containing AWS accounts the Grafana workspace can pull data from.
     */
    @JvmName("jscsaddkyckfudgj")
    public suspend fun organizationalUnits(`value`: Output>) {
        this.organizationalUnits = value
    }

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

    /**
     * @param values List of Organizational Units containing AWS accounts the Grafana workspace can pull data from.
     */
    @JvmName("mjljxcaqpnxibfhv")
    public suspend fun organizationalUnits(values: List>) {
        this.organizationalUnits = Output.all(values)
    }

    /**
     * @param value If this is `SERVICE_MANAGED` , and the workplace was created through the Amazon Managed Grafana console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use AWS data sources and notification channels.
     * If this is `CUSTOMER_MANAGED` , you must manage those roles and permissions yourself.
     * If you are working with a workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other AWS accounts in the organization, this parameter must be set to `CUSTOMER_MANAGED` .
     * For more information about converting between customer and service managed, see [Managing permissions for data sources and notification channels](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-datasource-and-notification.html) . For more information about the roles and permissions that must be managed for customer managed workspaces, see [Amazon Managed Grafana permissions and policies for AWS data sources and notification channels](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html)
     */
    @JvmName("hwvwqmijuneylfil")
    public suspend fun permissionType(`value`: Output) {
        this.permissionType = value
    }

    /**
     * @param value Allow workspace admins to install plugins
     */
    @JvmName("rjpyeqnifapqlifi")
    public suspend fun pluginAdminEnabled(`value`: Output) {
        this.pluginAdminEnabled = value
    }

    /**
     * @param value IAM Role that will be used to grant the Grafana workspace access to a customers AWS resources.
     */
    @JvmName("xgartuchwejfobkh")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the `Admin` and `Editor` roles in the workspace.
     */
    @JvmName("gwkmiqilfnjwunac")
    public suspend fun samlConfiguration(`value`: Output) {
        this.samlConfiguration = value
    }

    /**
     * @param value The name of the AWS CloudFormation stack set to use to generate IAM roles to be used for this workspace.
     */
    @JvmName("dbqmgryrrsmyvkgu")
    public suspend fun stackSetName(`value`: Output) {
        this.stackSetName = value
    }

    /**
     * @param value The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.
     * > Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).
     */
    @JvmName("hxxuddqqwecmdfkb")
    public suspend fun vpcConfiguration(`value`: Output) {
        this.vpcConfiguration = value
    }

    /**
     * @param value Specifies whether the workspace can access AWS resources in this AWS account only, or whether it can also access AWS resources in other accounts in the same organization. If this is `ORGANIZATION` , the `OrganizationalUnits` parameter specifies which organizational units the workspace can access.
     */
    @JvmName("hyprronvhxvjrftn")
    public suspend fun accountAccessType(`value`: WorkspaceAccountAccessType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accountAccessType = mapped
    }

    /**
     * @param value List of authentication providers to enable.
     */
    @JvmName("pgeovfxhbjqsmhyb")
    public suspend fun authenticationProviders(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationProviders = mapped
    }

    /**
     * @param values List of authentication providers to enable.
     */
    @JvmName("dpwohrymmputisgo")
    public suspend fun authenticationProviders(vararg values: WorkspaceAuthenticationProviderTypes) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationProviders = mapped
    }

    /**
     * @param value A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.
     */
    @JvmName("insvfrkwgbkvjuco")
    public suspend fun clientToken(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientToken = mapped
    }

    /**
     * @param value List of data sources on the service managed IAM role.
     */
    @JvmName("ccmsyrsvqnuahkca")
    public suspend fun dataSources(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataSources = mapped
    }

    /**
     * @param values List of data sources on the service managed IAM role.
     */
    @JvmName("bbtgycsqwylcotpb")
    public suspend fun dataSources(vararg values: WorkspaceDataSourceType) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dataSources = mapped
    }

    /**
     * @param value Description of a workspace.
     */
    @JvmName("mwyaqppuqvblncda")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The version of Grafana to support in your workspace.
     */
    @JvmName("bmipfsgeavlsqhlt")
    public suspend fun grafanaVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.grafanaVersion = mapped
    }

    /**
     * @param value The user friendly name of a workspace.
     */
    @JvmName("trucwsgxowdedeyt")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The configuration settings for network access to your workspace.
     */
    @JvmName("fpuyqvcebsihbwse")
    public suspend fun networkAccessControl(`value`: WorkspaceNetworkAccessControlArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkAccessControl = mapped
    }

    /**
     * @param argument The configuration settings for network access to your workspace.
     */
    @JvmName("ypbemultkkttigcd")
    public suspend fun networkAccessControl(argument: suspend WorkspaceNetworkAccessControlArgsBuilder.() -> Unit) {
        val toBeMapped = WorkspaceNetworkAccessControlArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networkAccessControl = mapped
    }

    /**
     * @param value List of notification destinations on the customers service managed IAM role that the Grafana workspace can query.
     */
    @JvmName("ondhcceutywddtfa")
    public suspend fun notificationDestinations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.notificationDestinations = mapped
    }

    /**
     * @param values List of notification destinations on the customers service managed IAM role that the Grafana workspace can query.
     */
    @JvmName("buwxonaqcwumvrmd")
    public suspend fun notificationDestinations(vararg values: WorkspaceNotificationDestinationType) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.notificationDestinations = mapped
    }

    /**
     * @param value The name of an IAM role that already exists to use with AWS Organizations to access AWS data sources and notification channels in other accounts in an organization.
     */
    @JvmName("qsnkaggpqwnuqlri")
    public suspend fun organizationRoleName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.organizationRoleName = mapped
    }

    /**
     * @param value List of Organizational Units containing AWS accounts the Grafana workspace can pull data from.
     */
    @JvmName("nlxbbobksutkynwa")
    public suspend fun organizationalUnits(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.organizationalUnits = mapped
    }

    /**
     * @param values List of Organizational Units containing AWS accounts the Grafana workspace can pull data from.
     */
    @JvmName("tfcylftomynfmnha")
    public suspend fun organizationalUnits(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.organizationalUnits = mapped
    }

    /**
     * @param value If this is `SERVICE_MANAGED` , and the workplace was created through the Amazon Managed Grafana console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use AWS data sources and notification channels.
     * If this is `CUSTOMER_MANAGED` , you must manage those roles and permissions yourself.
     * If you are working with a workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other AWS accounts in the organization, this parameter must be set to `CUSTOMER_MANAGED` .
     * For more information about converting between customer and service managed, see [Managing permissions for data sources and notification channels](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-datasource-and-notification.html) . For more information about the roles and permissions that must be managed for customer managed workspaces, see [Amazon Managed Grafana permissions and policies for AWS data sources and notification channels](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html)
     */
    @JvmName("pbtudsakcddfgbrr")
    public suspend fun permissionType(`value`: WorkspacePermissionType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permissionType = mapped
    }

    /**
     * @param value Allow workspace admins to install plugins
     */
    @JvmName("ixahlfvcfufmhvxf")
    public suspend fun pluginAdminEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pluginAdminEnabled = mapped
    }

    /**
     * @param value IAM Role that will be used to grant the Grafana workspace access to a customers AWS resources.
     */
    @JvmName("psaoglfhtbrmqwhq")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the `Admin` and `Editor` roles in the workspace.
     */
    @JvmName("kpujyjvhkpwfcskt")
    public suspend fun samlConfiguration(`value`: WorkspaceSamlConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.samlConfiguration = mapped
    }

    /**
     * @param argument If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the `Admin` and `Editor` roles in the workspace.
     */
    @JvmName("tuwfpusvaoortidk")
    public suspend fun samlConfiguration(argument: suspend WorkspaceSamlConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = WorkspaceSamlConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.samlConfiguration = mapped
    }

    /**
     * @param value The name of the AWS CloudFormation stack set to use to generate IAM roles to be used for this workspace.
     */
    @JvmName("umubnvnkillviyuq")
    public suspend fun stackSetName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.stackSetName = mapped
    }

    /**
     * @param value The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.
     * > Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).
     */
    @JvmName("mwbplhbmxgwkjkkx")
    public suspend fun vpcConfiguration(`value`: WorkspaceVpcConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcConfiguration = mapped
    }

    /**
     * @param argument The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.
     * > Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).
     */
    @JvmName("cgoymrrbtofofqbj")
    public suspend fun vpcConfiguration(argument: suspend WorkspaceVpcConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = WorkspaceVpcConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfiguration = mapped
    }

    internal fun build(): WorkspaceArgs = WorkspaceArgs(
        accountAccessType = accountAccessType,
        authenticationProviders = authenticationProviders,
        clientToken = clientToken,
        dataSources = dataSources,
        description = description,
        grafanaVersion = grafanaVersion,
        name = name,
        networkAccessControl = networkAccessControl,
        notificationDestinations = notificationDestinations,
        organizationRoleName = organizationRoleName,
        organizationalUnits = organizationalUnits,
        permissionType = permissionType,
        pluginAdminEnabled = pluginAdminEnabled,
        roleArn = roleArn,
        samlConfiguration = samlConfiguration,
        stackSetName = stackSetName,
        vpcConfiguration = vpcConfiguration,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy