Please wait. This can take some minutes ...
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.
com.pulumi.awsnative.workspacesweb.kotlin.PortalArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.workspacesweb.kotlin
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.workspacesweb.PortalArgs.builder
import com.pulumi.awsnative.workspacesweb.kotlin.enums.PortalAuthenticationType
import com.pulumi.awsnative.workspacesweb.kotlin.enums.PortalInstanceType
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.Double
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Definition of AWS::WorkSpacesWeb::Portal Resource Type
* @property additionalEncryptionContext The additional encryption context of the portal.
* @property authenticationType The type of authentication integration points used when signing into the web portal. Defaults to `Standard` .
* `Standard` web portals are authenticated directly through your identity provider (IdP). User and group access to your web portal is controlled through your IdP. You need to include an IdP resource in your template to integrate your IdP with your web portal. Completing the configuration for your IdP requires exchanging WorkSpaces Secure Browser’s SP metadata with your IdP’s IdP metadata. If your IdP requires the SP metadata first before returning the IdP metadata, you should follow these steps:
* 1. Create and deploy a CloudFormation template with a `Standard` portal with no `IdentityProvider` resource.
* 2. Retrieve the SP metadata using `Fn:GetAtt` , the WorkSpaces Secure Browser console, or by the calling the `GetPortalServiceProviderMetadata` API.
* 3. Submit the data to your IdP.
* 4. Add an `IdentityProvider` resource to your CloudFormation template.
* `IAM Identity Center` web portals are authenticated through AWS IAM Identity Center . They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration) and other identity provider information must be configured in IAM Identity Center . User and group assignment must be done through the WorkSpaces Secure Browser console. These cannot be configured in CloudFormation.
* @property browserSettingsArn The ARN of the browser settings that is associated with this web portal.
* @property customerManagedKey The customer managed key of the web portal.
* *Pattern* : `^arn:[\w+=\/,.@-]+:kms:[a-zA-Z0-9\-]*:[a-zA-Z0-9]{1,12}:key\/[a-zA-Z0-9-]+$`
* @property displayName The name of the web portal.
* @property instanceType The type and resources of the underlying instance.
* @property ipAccessSettingsArn The ARN of the IP access settings that is associated with the web portal.
* @property maxConcurrentSessions The maximum number of concurrent sessions for the portal.
* @property networkSettingsArn The ARN of the network settings that is associated with the web portal.
* @property tags The tags to add to the web portal. A tag is a key-value pair.
* @property trustStoreArn The ARN of the trust store that is associated with the web portal.
* @property userAccessLoggingSettingsArn The ARN of the user access logging settings that is associated with the web portal.
* @property userSettingsArn The ARN of the user settings that is associated with the web portal.
*/
public data class PortalArgs(
public val additionalEncryptionContext: Output>? = null,
public val authenticationType: Output? = null,
public val browserSettingsArn: Output? = null,
public val customerManagedKey: Output? = null,
public val displayName: Output? = null,
public val instanceType: Output? = null,
public val ipAccessSettingsArn: Output? = null,
public val maxConcurrentSessions: Output? = null,
public val networkSettingsArn: Output? = null,
public val tags: Output>? = null,
public val trustStoreArn: Output? = null,
public val userAccessLoggingSettingsArn: Output? = null,
public val userSettingsArn: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.workspacesweb.PortalArgs =
com.pulumi.awsnative.workspacesweb.PortalArgs.builder()
.additionalEncryptionContext(
additionalEncryptionContext?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.authenticationType(
authenticationType?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.browserSettingsArn(browserSettingsArn?.applyValue({ args0 -> args0 }))
.customerManagedKey(customerManagedKey?.applyValue({ args0 -> args0 }))
.displayName(displayName?.applyValue({ args0 -> args0 }))
.instanceType(instanceType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.ipAccessSettingsArn(ipAccessSettingsArn?.applyValue({ args0 -> args0 }))
.maxConcurrentSessions(maxConcurrentSessions?.applyValue({ args0 -> args0 }))
.networkSettingsArn(networkSettingsArn?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.trustStoreArn(trustStoreArn?.applyValue({ args0 -> args0 }))
.userAccessLoggingSettingsArn(userAccessLoggingSettingsArn?.applyValue({ args0 -> args0 }))
.userSettingsArn(userSettingsArn?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [PortalArgs].
*/
@PulumiTagMarker
public class PortalArgsBuilder internal constructor() {
private var additionalEncryptionContext: Output>? = null
private var authenticationType: Output? = null
private var browserSettingsArn: Output? = null
private var customerManagedKey: Output? = null
private var displayName: Output? = null
private var instanceType: Output? = null
private var ipAccessSettingsArn: Output? = null
private var maxConcurrentSessions: Output? = null
private var networkSettingsArn: Output? = null
private var tags: Output>? = null
private var trustStoreArn: Output? = null
private var userAccessLoggingSettingsArn: Output? = null
private var userSettingsArn: Output? = null
/**
* @param value The additional encryption context of the portal.
*/
@JvmName("elsmcowjmhorjadt")
public suspend fun additionalEncryptionContext(`value`: Output>) {
this.additionalEncryptionContext = value
}
/**
* @param value The type of authentication integration points used when signing into the web portal. Defaults to `Standard` .
* `Standard` web portals are authenticated directly through your identity provider (IdP). User and group access to your web portal is controlled through your IdP. You need to include an IdP resource in your template to integrate your IdP with your web portal. Completing the configuration for your IdP requires exchanging WorkSpaces Secure Browser’s SP metadata with your IdP’s IdP metadata. If your IdP requires the SP metadata first before returning the IdP metadata, you should follow these steps:
* 1. Create and deploy a CloudFormation template with a `Standard` portal with no `IdentityProvider` resource.
* 2. Retrieve the SP metadata using `Fn:GetAtt` , the WorkSpaces Secure Browser console, or by the calling the `GetPortalServiceProviderMetadata` API.
* 3. Submit the data to your IdP.
* 4. Add an `IdentityProvider` resource to your CloudFormation template.
* `IAM Identity Center` web portals are authenticated through AWS IAM Identity Center . They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration) and other identity provider information must be configured in IAM Identity Center . User and group assignment must be done through the WorkSpaces Secure Browser console. These cannot be configured in CloudFormation.
*/
@JvmName("pwnafdalslfcebwh")
public suspend fun authenticationType(`value`: Output) {
this.authenticationType = value
}
/**
* @param value The ARN of the browser settings that is associated with this web portal.
*/
@JvmName("tsjcqwpqbgvtykaf")
public suspend fun browserSettingsArn(`value`: Output) {
this.browserSettingsArn = value
}
/**
* @param value The customer managed key of the web portal.
* *Pattern* : `^arn:[\w+=\/,.@-]+:kms:[a-zA-Z0-9\-]*:[a-zA-Z0-9]{1,12}:key\/[a-zA-Z0-9-]+$`
*/
@JvmName("wavshffieigptwxx")
public suspend fun customerManagedKey(`value`: Output) {
this.customerManagedKey = value
}
/**
* @param value The name of the web portal.
*/
@JvmName("pogqbofrfeiefofm")
public suspend fun displayName(`value`: Output) {
this.displayName = value
}
/**
* @param value The type and resources of the underlying instance.
*/
@JvmName("sopjseehgttxdgbt")
public suspend fun instanceType(`value`: Output) {
this.instanceType = value
}
/**
* @param value The ARN of the IP access settings that is associated with the web portal.
*/
@JvmName("vkiopmcmbwjgjalp")
public suspend fun ipAccessSettingsArn(`value`: Output) {
this.ipAccessSettingsArn = value
}
/**
* @param value The maximum number of concurrent sessions for the portal.
*/
@JvmName("iowcpiknyyhabbtc")
public suspend fun maxConcurrentSessions(`value`: Output) {
this.maxConcurrentSessions = value
}
/**
* @param value The ARN of the network settings that is associated with the web portal.
*/
@JvmName("xrjeunjnempwhaeq")
public suspend fun networkSettingsArn(`value`: Output) {
this.networkSettingsArn = value
}
/**
* @param value The tags to add to the web portal. A tag is a key-value pair.
*/
@JvmName("tererqmexttohidr")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
@JvmName("rvxljrcipvitmhef")
public suspend fun tags(vararg values: Output) {
this.tags = Output.all(values.asList())
}
/**
* @param values The tags to add to the web portal. A tag is a key-value pair.
*/
@JvmName("mcrxhtyyrnaktvtq")
public suspend fun tags(values: List>) {
this.tags = Output.all(values)
}
/**
* @param value The ARN of the trust store that is associated with the web portal.
*/
@JvmName("nydmtskepqnoqxma")
public suspend fun trustStoreArn(`value`: Output) {
this.trustStoreArn = value
}
/**
* @param value The ARN of the user access logging settings that is associated with the web portal.
*/
@JvmName("epaycgatixltxxyw")
public suspend fun userAccessLoggingSettingsArn(`value`: Output) {
this.userAccessLoggingSettingsArn = value
}
/**
* @param value The ARN of the user settings that is associated with the web portal.
*/
@JvmName("jaoamhrlqepxxcxh")
public suspend fun userSettingsArn(`value`: Output) {
this.userSettingsArn = value
}
/**
* @param value The additional encryption context of the portal.
*/
@JvmName("hhaqylhfqddthtdn")
public suspend fun additionalEncryptionContext(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.additionalEncryptionContext = mapped
}
/**
* @param values The additional encryption context of the portal.
*/
@JvmName("ncbvrlcwbygarbms")
public fun additionalEncryptionContext(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.additionalEncryptionContext = mapped
}
/**
* @param value The type of authentication integration points used when signing into the web portal. Defaults to `Standard` .
* `Standard` web portals are authenticated directly through your identity provider (IdP). User and group access to your web portal is controlled through your IdP. You need to include an IdP resource in your template to integrate your IdP with your web portal. Completing the configuration for your IdP requires exchanging WorkSpaces Secure Browser’s SP metadata with your IdP’s IdP metadata. If your IdP requires the SP metadata first before returning the IdP metadata, you should follow these steps:
* 1. Create and deploy a CloudFormation template with a `Standard` portal with no `IdentityProvider` resource.
* 2. Retrieve the SP metadata using `Fn:GetAtt` , the WorkSpaces Secure Browser console, or by the calling the `GetPortalServiceProviderMetadata` API.
* 3. Submit the data to your IdP.
* 4. Add an `IdentityProvider` resource to your CloudFormation template.
* `IAM Identity Center` web portals are authenticated through AWS IAM Identity Center . They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration) and other identity provider information must be configured in IAM Identity Center . User and group assignment must be done through the WorkSpaces Secure Browser console. These cannot be configured in CloudFormation.
*/
@JvmName("tiritbadwbchktoj")
public suspend fun authenticationType(`value`: PortalAuthenticationType?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.authenticationType = mapped
}
/**
* @param value The ARN of the browser settings that is associated with this web portal.
*/
@JvmName("jeqyslfytbpurjaj")
public suspend fun browserSettingsArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.browserSettingsArn = mapped
}
/**
* @param value The customer managed key of the web portal.
* *Pattern* : `^arn:[\w+=\/,.@-]+:kms:[a-zA-Z0-9\-]*:[a-zA-Z0-9]{1,12}:key\/[a-zA-Z0-9-]+$`
*/
@JvmName("vrvdjwaweagrfumn")
public suspend fun customerManagedKey(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customerManagedKey = mapped
}
/**
* @param value The name of the web portal.
*/
@JvmName("lcmtccfrpdhbynpw")
public suspend fun displayName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.displayName = mapped
}
/**
* @param value The type and resources of the underlying instance.
*/
@JvmName("brulpugsmemxqhfg")
public suspend fun instanceType(`value`: PortalInstanceType?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.instanceType = mapped
}
/**
* @param value The ARN of the IP access settings that is associated with the web portal.
*/
@JvmName("dhsvgivqvpkyhyqx")
public suspend fun ipAccessSettingsArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ipAccessSettingsArn = mapped
}
/**
* @param value The maximum number of concurrent sessions for the portal.
*/
@JvmName("pmugwesksmeynmop")
public suspend fun maxConcurrentSessions(`value`: Double?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.maxConcurrentSessions = mapped
}
/**
* @param value The ARN of the network settings that is associated with the web portal.
*/
@JvmName("cxbpyiaftojqnxin")
public suspend fun networkSettingsArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkSettingsArn = mapped
}
/**
* @param value The tags to add to the web portal. A tag is a key-value pair.
*/
@JvmName("nfjjsnaanhvgkrrd")
public suspend fun tags(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param argument The tags to add to the web portal. A tag is a key-value pair.
*/
@JvmName("muirjkhboyaatcjx")
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 to add to the web portal. A tag is a key-value pair.
*/
@JvmName("lmkyoogaymnfxito")
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 to add to the web portal. A tag is a key-value pair.
*/
@JvmName("tsmrqvulpywvbkrs")
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 to add to the web portal. A tag is a key-value pair.
*/
@JvmName("seogbsjsqidifcsf")
public suspend fun tags(vararg values: TagArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value The ARN of the trust store that is associated with the web portal.
*/
@JvmName("novgxagdsfhgosxi")
public suspend fun trustStoreArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.trustStoreArn = mapped
}
/**
* @param value The ARN of the user access logging settings that is associated with the web portal.
*/
@JvmName("vjcyplgkjakxhaob")
public suspend fun userAccessLoggingSettingsArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.userAccessLoggingSettingsArn = mapped
}
/**
* @param value The ARN of the user settings that is associated with the web portal.
*/
@JvmName("bsrltsocasyfdyij")
public suspend fun userSettingsArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.userSettingsArn = mapped
}
internal fun build(): PortalArgs = PortalArgs(
additionalEncryptionContext = additionalEncryptionContext,
authenticationType = authenticationType,
browserSettingsArn = browserSettingsArn,
customerManagedKey = customerManagedKey,
displayName = displayName,
instanceType = instanceType,
ipAccessSettingsArn = ipAccessSettingsArn,
maxConcurrentSessions = maxConcurrentSessions,
networkSettingsArn = networkSettingsArn,
tags = tags,
trustStoreArn = trustStoreArn,
userAccessLoggingSettingsArn = userAccessLoggingSettingsArn,
userSettingsArn = userSettingsArn,
)
}