com.pulumi.awsnative.apigatewayv2.kotlin.DomainName.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.apigatewayv2.kotlin
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.DomainNameConfiguration
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.DomainNameMutualTlsAuthentication
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.DomainNameConfiguration.Companion.toKotlin as domainNameConfigurationToKotlin
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.DomainNameMutualTlsAuthentication.Companion.toKotlin as domainNameMutualTlsAuthenticationToKotlin
/**
* Builder for [DomainName].
*/
@PulumiTagMarker
public class DomainNameResourceBuilder internal constructor() {
public var name: String? = null
public var args: DomainNameArgs = DomainNameArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend DomainNameArgsBuilder.() -> Unit) {
val builder = DomainNameArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): DomainName {
val builtJavaResource = com.pulumi.awsnative.apigatewayv2.DomainName(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return DomainName(builtJavaResource)
}
}
/**
* The ``AWS::ApiGatewayV2::DomainName`` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway).
* You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*.
*/
public class DomainName internal constructor(
override val javaResource: com.pulumi.awsnative.apigatewayv2.DomainName,
) : KotlinCustomResource(javaResource, DomainNameMapper) {
/**
* The custom domain name for your API in Amazon API Gateway. Uppercase letters are not supported.
*/
public val domainName: Output
get() = javaResource.domainName().applyValue({ args0 -> args0 })
/**
* The domain name configurations.
*/
public val domainNameConfigurations: Output>?
get() = javaResource.domainNameConfigurations().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
domainNameConfigurationToKotlin(args0)
})
})
}).orElse(null)
})
/**
* The mutual TLS authentication configuration for a custom domain name.
*/
public val mutualTlsAuthentication: Output?
get() = javaResource.mutualTlsAuthentication().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> domainNameMutualTlsAuthenticationToKotlin(args0) })
}).orElse(null)
})
/**
* The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name.
*/
public val regionalDomainName: Output
get() = javaResource.regionalDomainName().applyValue({ args0 -> args0 })
/**
* The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint.
*/
public val regionalHostedZoneId: Output
get() = javaResource.regionalHostedZoneId().applyValue({ args0 -> args0 })
/**
* The collection of tags associated with a domain name.
*/
public val tags: Output