com.pulumi.awsnative.ec2.kotlin.VerifiedAccessEndpointArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
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.ec2.kotlin
import com.pulumi.awsnative.ec2.VerifiedAccessEndpointArgs.builder
import com.pulumi.awsnative.ec2.kotlin.inputs.VerifiedAccessEndpointLoadBalancerOptionsArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.VerifiedAccessEndpointLoadBalancerOptionsArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.VerifiedAccessEndpointNetworkInterfaceOptionsArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.VerifiedAccessEndpointNetworkInterfaceOptionsArgsBuilder
import com.pulumi.awsnative.ec2.kotlin.inputs.VerifiedAccessEndpointSseSpecificationArgs
import com.pulumi.awsnative.ec2.kotlin.inputs.VerifiedAccessEndpointSseSpecificationArgsBuilder
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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* The AWS::EC2::VerifiedAccessEndpoint resource creates an AWS EC2 Verified Access Endpoint.
* @property applicationDomain The DNS name for users to reach your application.
* @property attachmentType The type of attachment used to provide connectivity between the AWS Verified Access endpoint and the application.
* @property description A description for the AWS Verified Access endpoint.
* @property domainCertificateArn The ARN of a public TLS/SSL certificate imported into or created with ACM.
* @property endpointDomainPrefix A custom identifier that gets prepended to a DNS name that is generated for the endpoint.
* @property endpointType The type of AWS Verified Access endpoint. Incoming application requests will be sent to an IP address, load balancer or a network interface depending on the endpoint type specified.The type of AWS Verified Access endpoint. Incoming application requests will be sent to an IP address, load balancer or a network interface depending on the endpoint type specified.
* @property loadBalancerOptions The load balancer details if creating the AWS Verified Access endpoint as load-balancer type.
* @property networkInterfaceOptions The options for network-interface type endpoint.
* @property policyDocument The AWS Verified Access policy document.
* @property policyEnabled The status of the Verified Access policy.
* @property securityGroupIds The IDs of the security groups for the endpoint.
* @property sseSpecification The configuration options for customer provided KMS encryption.
* @property tags An array of key-value pairs to apply to this resource.
* @property verifiedAccessGroupId The ID of the AWS Verified Access group.
*/
public data class VerifiedAccessEndpointArgs(
public val applicationDomain: Output? = null,
public val attachmentType: Output? = null,
public val description: Output? = null,
public val domainCertificateArn: Output? = null,
public val endpointDomainPrefix: Output? = null,
public val endpointType: Output? = null,
public val loadBalancerOptions: Output? = null,
public val networkInterfaceOptions: Output? =
null,
public val policyDocument: Output? = null,
public val policyEnabled: Output? = null,
public val securityGroupIds: Output>? = null,
public val sseSpecification: Output? = null,
public val tags: Output>? = null,
public val verifiedAccessGroupId: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.ec2.VerifiedAccessEndpointArgs =
com.pulumi.awsnative.ec2.VerifiedAccessEndpointArgs.builder()
.applicationDomain(applicationDomain?.applyValue({ args0 -> args0 }))
.attachmentType(attachmentType?.applyValue({ args0 -> args0 }))
.description(description?.applyValue({ args0 -> args0 }))
.domainCertificateArn(domainCertificateArn?.applyValue({ args0 -> args0 }))
.endpointDomainPrefix(endpointDomainPrefix?.applyValue({ args0 -> args0 }))
.endpointType(endpointType?.applyValue({ args0 -> args0 }))
.loadBalancerOptions(
loadBalancerOptions?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.networkInterfaceOptions(
networkInterfaceOptions?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.policyDocument(policyDocument?.applyValue({ args0 -> args0 }))
.policyEnabled(policyEnabled?.applyValue({ args0 -> args0 }))
.securityGroupIds(securityGroupIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.sseSpecification(sseSpecification?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.verifiedAccessGroupId(verifiedAccessGroupId?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [VerifiedAccessEndpointArgs].
*/
@PulumiTagMarker
public class VerifiedAccessEndpointArgsBuilder internal constructor() {
private var applicationDomain: Output? = null
private var attachmentType: Output? = null
private var description: Output? = null
private var domainCertificateArn: Output? = null
private var endpointDomainPrefix: Output? = null
private var endpointType: Output? = null
private var loadBalancerOptions: Output? = null
private var networkInterfaceOptions: Output? =
null
private var policyDocument: Output? = null
private var policyEnabled: Output? = null
private var securityGroupIds: Output>? = null
private var sseSpecification: Output? = null
private var tags: Output>? = null
private var verifiedAccessGroupId: Output? = null
/**
* @param value The DNS name for users to reach your application.
*/
@JvmName("wpraimxukuheyrph")
public suspend fun applicationDomain(`value`: Output) {
this.applicationDomain = value
}
/**
* @param value The type of attachment used to provide connectivity between the AWS Verified Access endpoint and the application.
*/
@JvmName("hrrtcdedqwkykpga")
public suspend fun attachmentType(`value`: Output) {
this.attachmentType = value
}
/**
* @param value A description for the AWS Verified Access endpoint.
*/
@JvmName("iuuibhewmytdmnhi")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value The ARN of a public TLS/SSL certificate imported into or created with ACM.
*/
@JvmName("lmyohhgdltmbrjar")
public suspend fun domainCertificateArn(`value`: Output) {
this.domainCertificateArn = value
}
/**
* @param value A custom identifier that gets prepended to a DNS name that is generated for the endpoint.
*/
@JvmName("ucdualdpjhuafjcg")
public suspend fun endpointDomainPrefix(`value`: Output) {
this.endpointDomainPrefix = value
}
/**
* @param value The type of AWS Verified Access endpoint. Incoming application requests will be sent to an IP address, load balancer or a network interface depending on the endpoint type specified.The type of AWS Verified Access endpoint. Incoming application requests will be sent to an IP address, load balancer or a network interface depending on the endpoint type specified.
*/
@JvmName("qeohbjyrjdbjyusy")
public suspend fun endpointType(`value`: Output) {
this.endpointType = value
}
/**
* @param value The load balancer details if creating the AWS Verified Access endpoint as load-balancer type.
*/
@JvmName("kgjcdjqpdkpllfhf")
public suspend fun loadBalancerOptions(`value`: Output) {
this.loadBalancerOptions = value
}
/**
* @param value The options for network-interface type endpoint.
*/
@JvmName("fnesnrmgejwjsmwl")
public suspend fun networkInterfaceOptions(`value`: Output) {
this.networkInterfaceOptions = value
}
/**
* @param value The AWS Verified Access policy document.
*/
@JvmName("vcppgncntcmitvca")
public suspend fun policyDocument(`value`: Output) {
this.policyDocument = value
}
/**
* @param value The status of the Verified Access policy.
*/
@JvmName("xtueacfxhyxjhxpl")
public suspend fun policyEnabled(`value`: Output) {
this.policyEnabled = value
}
/**
* @param value The IDs of the security groups for the endpoint.
*/
@JvmName("ofidxmwdltgmexqe")
public suspend fun securityGroupIds(`value`: Output>) {
this.securityGroupIds = value
}
@JvmName("gmeavypmqwgnqywx")
public suspend fun securityGroupIds(vararg values: Output) {
this.securityGroupIds = Output.all(values.asList())
}
/**
* @param values The IDs of the security groups for the endpoint.
*/
@JvmName("nrefnlutagrdcste")
public suspend fun securityGroupIds(values: List