Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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